我正在尝试将upsert
选项设置为true
来实现操作符$setOnInsert。这是为了防止在文档已经存在的情况下无法创建文档。
要查找现有文档,可以在文档的任何属性中执行搜索。因此,我不能只是在文档的所有属性上创建唯一索引。根据我的理解,the query and the create are not atomic and it is possible to create duplicates。
我的问题是,如何在没有唯一索引的情况下使upsert
成为原子的?既然没有关于这种情况的文档,那么我对这个要求是否很幸运?
MongoDB引入了事务。我们可以结合使用事务和upsert: true
来对查询和创建执行原子操作吗?不幸的是,阅读交易文档后,我无法给出答案。