Mongoose withTransaction 仅部分执行

Ben*_*ick 6 mongoose mongodb node.js

Mongoose 的session.withTransaction助手只执行第一次写入。这是代码:

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 });
});
Run Code Online (Sandbox Code Playgroud)

此代码在数据库中创建一个新成员,但不更新用户。交易的意义不是只有在每个操作都成功时才能通过吗?我究竟做错了什么; 或者这对猫鼬来说是不可能的?

猫鼬:5.9.26,Node.js:14.9.0

小智 0

检查使用您要作为交易基础的模型启动会话是否有帮助:

const session = await Member.startSession();
Run Code Online (Sandbox Code Playgroud)