Node.js 在嵌套MongoDB调用中,如何确保原子性?
是否可以通过在第一次更新的回调中调用一个新的更新/删除调用来自动更新/删除MongoDB中的两个文档?在以下情况下,我希望从集合中删除第二个文档,但前提是对第一个文档的更新成功:Node.js 在嵌套MongoDB调用中,如何确保原子性?,node.js,mongodb,Node.js,Mongodb,是否可以通过在第一次更新的回调中调用一个新的更新/删除调用来自动更新/删除MongoDB中的两个文档?在以下情况下,我希望从集合中删除第二个文档,但前提是对第一个文档的更新成功: db.collection.update(conditions1, {$set: set}, function (err,result){ db.collection.remove(conditions2, function(err,doc_num){ db.close();
db.collection.update(conditions1, {$set: set}, function (err,result){
db.collection.remove(conditions2, function(err,doc_num){
db.close();
)};
});
我遇到了$isolated query运算符,但据我在文档中了解,该运算符用于对影响多个文档的单个查询执行读/写锁定,在通过第一次文档更新的回调对另一个文档执行更新后,不在一个文档上执行读/写锁定,这正是我想要尝试和完成的。不,这是不可能的,因为。如文档所述,锁将在单个查询而不是整个事务上获得
您可以通过使用来克服原子性问题。正如Amir所说的,这是不可能的,但是您可以通过以下方法来模拟mongo中的行为。该链接还链接到如何执行类似回滚的操作