在嵌套的MongoDB调用中,如何确保原子性?

Lei*_*eif 5 mongodb node.js

是否可以通过在第一次更新的回调中调用新的更新/删除调用来自动更新/删除MongoDB中的两个文档?在下面的例子中,我想从集合中删除第二个文档,但前提是第一个文档的更新成功:

db.collection.update(conditions1, {$set: set}, function (err,result){
    db.collection.remove(conditions2, function(err,doc_num){      
        db.close();
    )};
});
Run Code Online (Sandbox Code Playgroud)

我遇到了$ isolated查询运算符,但根据我在文档中的理解,此运算符用于对影响多个文档的单个查询执行读/写锁定,而不是对一个执行读/写锁定通过第一个文档更新的回调对另一个文档执行更新之后的文档,这是我想要尝试完成的.

Ami*_*mir 0

不,这是不可能的,因为。如此处所述,将在单个查询而不是整个事务上获取锁。

您可以通过使用来克服原子性问题。