如何在猫鼬中回滚更新查询的更改

时间:2019-02-28 13:34:50

标签: node.js mongodb mongoose

我在mongodb中进行了查询,以更新集合中的文档,其中包括在该文档中添加其他字段。 然后我做了另一个更新另一个集合中的另一个文档并在第一个查询的结果函数中执行,但是在更新第二个时却出错了。 我需要回滚对第一个文档所做的更改。 请帮助

1 个答案:

答案 0 :(得分:0)

根据docs,您可以使用session.abortTransaction()在猫鼬中回滚交易

文档中的示例代码

let session = null;
return Customer.createCollection().
  then(() => Customer.startSession()).
  then(_session => {
    session = _session;
    session.startTransaction();
    return Customer.create([{ name: 'Test' }], { session: session });
  }).
  then(() => Customer.create([{ name: 'Test2' }], { session: session })).
  then(() => session.abortTransaction()).
  then(() => Customer.countDocuments()).
  then(count => assert.strictEqual(count, 0));