pymongo 中的 find_one_and_update() 是原子的吗?
Is find_one_and_update() in pymongo atomic?
我找不到任何文档说明 pymongo
中的 find_one_and_update()
是原子的(即,在搜索和更新之间不会出现对文档的更改)。我可以相信它是原子的吗?或者是否有另一种方法以保证原子的方式执行相同的操作?
PyMongo 的 find_one_and_update
是原子的,因为它转换为服务器的 findOneAndUpdate
是原子的 (https://docs.mongodb.com/manual/core/write-operations-atomicity/#atomicity)。
但是,请注意插入新文档时的“故障”。当不在查询字段上使用唯一索引时,具有相似查询字段的 findOneAndUpdate
操作的多个实例可能会导致在某些情况下插入重复文档。 (https://docs.mongodb.com/manual/reference/method/db.collection.findAndModify/#upsert-with-unique-index)
我找不到任何文档说明 pymongo
中的 find_one_and_update()
是原子的(即,在搜索和更新之间不会出现对文档的更改)。我可以相信它是原子的吗?或者是否有另一种方法以保证原子的方式执行相同的操作?
PyMongo 的 find_one_and_update
是原子的,因为它转换为服务器的 findOneAndUpdate
是原子的 (https://docs.mongodb.com/manual/core/write-operations-atomicity/#atomicity)。
但是,请注意插入新文档时的“故障”。当不在查询字段上使用唯一索引时,具有相似查询字段的 findOneAndUpdate
操作的多个实例可能会导致在某些情况下插入重复文档。 (https://docs.mongodb.com/manual/reference/method/db.collection.findAndModify/#upsert-with-unique-index)