如何处理Mongo中的并行upsert错误?

时间:2019-02-25 08:12:08

标签: mongodb

我们的项目中有一个变通办法,当两个线程进行upsert时,可以处理重复的键错误:

try:
    await db.collection.find_one_and_update(query, update, upsert=True)
except pymongo.errors.DuplicateKeyError:
    await db.collection.find_one_and_update(query, update, upsert=True)

它可以正常工作,但是也许有更好的方法吗?另外,为什么会发生此错误?为什么Mongo无法从侧面进行处理(在一个查询中进行upsert,在另一查询中进行更新),而我们必须在应用程序代码中进行处理?

0 个答案:

没有答案