使用 updateOne 在 Mongo DB 中遇到延迟

问题描述 投票:0回答:1

我正在使用 java 更新文档中的几个字段,更新在 4 毫秒内完成。 更新完成后我将去数据库获取相同的文档。我没有收到更新的文档。 我没有收到更新文档的任何原因? 我尝试过的几件事是

  1. 我尝试了 updateOne 方法,它显示修改后的文档 1
  2. ReturnDocument.AFTER 的 findOneAndUpdate 方法选项,它返回更新的文档。 问题是,2 毫秒后,我的流程转到更新的文档,然后更新的文档不存在。
配置为“读关注为多数”、“写关注为多数”、“读偏好为主要”。

java mongodb mongodb-query
1个回答
0
投票
您可能需要检查以下因素:

  1. 写下疑虑: 仔细检查您的写入问题是否设置正确。如果您使用 WriteConcern.MAJORITY

    ,它可以确保大多数副本集成员确认写入,但它不保证读取的立即可见性。

    WriteConcern.MAJORITY
    
    
  2. 阅读关注: 确保您的读取关注点设置为 majority

    ,以获得反映最新多数提交写入的一致结果。

    ReadConcern.MAJORITY
    
    
  3. 索引: 检查您的查询/更新字段是否已正确索引以获得更好的读取性能。

  4. 检查错误: updateOne

    操作后,记录结果并检查是否有错误。

    UpdateResult result = collection.updateOne(filter, update); if (!result.wasAcknowledged()) { // Handle error }
    
    
  5. 连接池: 确认您的 MongoDB Java 驱动程序使用连接池来提高效率。

  6. 副本集状态: 验证 MongoDB 副本集的运行状况。确保所有节点都正常,并且没有复制滞后。

© www.soinside.com 2019 - 2024. All rights reserved.