【发布时间】:2019-02-20 00:12:39
【问题描述】:
我正在设置一个使用 mongodb(通过 pymongo)的 python 应用程序。
我需要覆盖整个文档的内容。这可以通过update 或replace 完成。但是,mongo 文档并没有明确说明这些操作的原子性——只说individual write operations are atomic,没有解释更新或替换是否使用多个写入操作。
有谁知道这些操作中的任何一个是否完全是原子的?
【问题讨论】:
我正在设置一个使用 mongodb(通过 pymongo)的 python 应用程序。
我需要覆盖整个文档的内容。这可以通过update 或replace 完成。但是,mongo 文档并没有明确说明这些操作的原子性——只说individual write operations are atomic,没有解释更新或替换是否使用多个写入操作。
有谁知道这些操作中的任何一个是否完全是原子的?
【问题讨论】:
find_and_modify 在pymongo 驱动程序中已弃用。而是使用以下之一:
原来的find_and_modify 有可能修改多个文档,这可能不是预期的,也不是原子的。
有关 MongoDB 中真正符合 ACID 的修改序列,请查看MongoDB ACID Transactions。自去年发布的 MongoDB 4.0 起受支持。
【讨论】: