我有一个pymongo脚本检查一个元素,如果它在集合中然后返回它的id,否则它插入然后返回新插入的集合的id。我希望这是线程安全的。因为几个脚本可能使用此脚本来检查元素。 我该如何使这个线程安全。
我看到了start_request方法,认为它会起作用,但事实并非如此。它插入两个引用同一元素的文档。
答案 0 :(得分:0)
如shx2
所述,您不是在寻找线程安全,而是在寻找原子数据库事务。
MongoDB findAndModify可能就是你要找的东西。它以原子方式更新文档,或者在指定new: true
和upsert: true
选项时插入文档并返回文档。