我想在我的mongodb数据库中保持原子性,如果我在文档中更新数组,并且成功,那么其他文档将更新,否则,如果任何文档失败,则不应更新文档。在mongodb中维护原子性
我无法理解如何在我的nodejs应用程序中使用mongoClient实现此功能。
secureRoutes.post("/sendrequest", function (req, res) {
MongoClient.connect(url, function (err, db) {
if (err) throw err;
else{
db.collection('users').updateOne({_id:req.user['sub']},{$addToSet:{requested:req.body.id}},function(update1Err,update1Data){
if (updateErr) throw updateErr;
else {
db.collection('users').updateOne({_id:req.body.id},{$addToSet:{pending:req.user['sub']}});
}
});
res.send(JSON.stringify(req.body.id));
}
});
});
所以,如果第一次查询失败的话,第二个将无法运行和原子将保持不变,但如果第一查询执行和第二失败,那么该原子将不保。
帮我理解正确的实现。 谢谢
我讲的是两个不同的文件进行更新。 $孤立的操作员有助于何时需要在单个文档中完成多个更新。 –