我找不到任何说明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)