我有一个用C#编写的.NET应用程序,并使用Mongo作为我的数据库后端。我的一个集合UserSearchTerms反复(无意地)创建了重复的文档。我已经将问题梳理成一个异步调用的更新函数,并且可以同时调用多次。为了避免并发运行出现问题,我使用更新来实现此代码,我会在匹配特定查询(在用户和程序上唯一)的任何文档上触发该更新,如果未找到文档,则更新。最初,我可以保证不存在重复项,因此预计只会发生以下两种情况:不存在匹配的文档,触发upsert添加新文档存在一个匹配文档,因此仅在该文档上触发更新考虑到这两种情况,我预计没有办法通过此函数插入重复文档-唯一应该插入新文档的时间是在没有文档