Mongoose 的 session.withTransaction
helper 只执行第一次写入。这是代码:
const session = await mongoose.startSession();
await session.withTransaction(async () => {
const member = await Member.create([{
name: 'John Doe'
email: 'johndoe@example.com',
}], { session });
await User.updateOne({ _id: req.user.id }, { member: member._id }, { session });
});
此代码在数据库中创建一个新成员,但不更新用户。交易的意义不是只有在每个操作都成功时才能通过吗?我究竟做错了什么;或者这对 Mongoose 来说是不可能的?Mongoose :5.9.26,
Node.js:14.9.0
最佳答案
检查是否使用您将基于事务的模型启动 session 帮助:
const session = await Member.startSession();
关于node.js - Mongoose withTransaction 仅部分执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63804395/