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)。

然而,注意"glitch"在更新新文档时。当在查询字段上不使用唯一索引时,具有相似查询字段的findOneAndUpdate操作的多个实例可能导致在某些情况下插入重复的文档。(https://docs.mongodb.com/manual/reference/method/db.collection.findAndModify/upsert-with-unique-index)

最新更新