我有两个相关的文件。我必须将一个文档的_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();
}有什么想法吗?任何替代is也将是有帮助的。以下是我正在使用的版本
节点版本-v10.15.3
mongoose -5.5.4
typescript - ^3.4.4
mongodb -4.0.1
发布于 2019-04-30 15:58:53
方法MoneyTransactions.updateMany和Imports.update是异步方法。在它们前面添加关键字await,否则将不会提交任何事务。
发布于 2019-04-30 15:54:17
MongoDB目前仅支持副本集上的事务,而不支持独立服务器上的事务。确保您的MongoDb符合要求。
https://stackoverflow.com/questions/55916178
复制相似问题