我有两个相关的文档。我必须将一个文档的 _id 保存到另一文档中。我正在使用事务一次更新两个文档,以便数据不会损坏。
但问题是文档没有得到更新。这是我的代码
const session = await mongoose.startSession();
session.startTransaction();
try {
MoneyTransactions.updateMany({
_id: { $in: [id1,id2 ]}
}, {
settledOnImport: importTransaction._id
}, { session }
)
Imports.update(
{ _id: importTransaction._id },
{
settledOn: Date.now()
}, { session })
await session.commitTransaction()
return importTransaction;
}
catch (e) {
return null;
}
finally {
session.endSession();
}
有什么想法吗?任何替代方案也会有所帮助。 这是我正在使用的版本
Node 版本-v10.15.3
Mongoose -5.5.4
typescript - ^3.4.4
mongodb-4.0.1
最佳答案
方法MoneyTransactions.updateMany
和Imports.update
是异步方法。在它们前面添加关键字 await
,否则您将无缘无故地提交事务。
关于node.js - Mongoose 多文档交易不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55916178/