【问题标题】:Lock a document while writing such that even reads are blocked in MongoDB在写入时锁定文档,这样即使读取也会在 MongoDB 中被阻止
【发布时间】:2015-11-24 09:04:53
【问题描述】:

我在 MongoDB 中更新文档时遇到了一个小问题。

我有这样的文件

orders{
  orderId:Number,
  orders: Array,
  time:Date,
  .
  .
  .
}

现在,orders 是一个数组,我在多个地方读取了这个数组,并在多个地方更新了它。但是当我更新它时,我不希望我的其他查询阅读它。如何在 MongoDB 中实现这一点。

我查看了官方的 MongoDB 文档,但它很混乱,无法理解。任何其他参考资料、链接或解释都会有帮助。

提前致谢。

【问题讨论】:

标签: mongodb mongodb-query pymongo


【解决方案1】:

你不需要做任何特别的事情。
MongoDB 对单个文档的写入是原子的(在写入期间您不会看到任何内容,只有在之前和之后),并且写入锁是“贪婪的”。它不允许在写入时发生任何其他读/写。

MongoDB Read/Write Locks

【讨论】:

    【解决方案2】:

    如果您想要文档级锁定,您可以启用wiredtiger 存储引擎。默认情况下,MongoDB 具有集合级别锁定 (MMAP)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-02-02
      • 2015-05-05
      • 2021-11-13
      • 1970-01-01
      • 2021-03-29
      • 2020-12-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多