在mongodb中保持primefaces性

我想在我的MongoDB数据库中保持primefaces性,如果我更新我的文档中的数组,如果成功,那么其他文档将更新,否则,如果任何文档失败,则不应更新文档。

我无法理解如何在我的nodejs应用程序中使用mongoClient来实现这个function。

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)); } }); }); 

所以,如果第一个查询失败,那么第二个将不会运行,primefaces性将被维护,但如果第一个查询执行,第二个失败,那么primefaces性将不会被维护。

帮助我理解正确的实施。 谢谢

检查这个链接的MongoDB交易。 我想这是你需要的。

https://docs.mongodb.com/manual/core/write-operations-atomicity/

您必须使用mongodb的两阶段提交来处理事务的回滚。 这里是文档的链接,请参阅回滚部分

https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/

在mongodb中默认没有条件事务回滚