簡體   English   中英

為什么 mongoose abortTransaction() 不起作用?

[英]Why mongoose abortTransaction() not working?

  • macOS:10.15.5
  • 節點JS:10.16.3
  • Mongoose:5.8、5.9
  • MongoDB:4.0.3

我有下一個代碼:

import User from 'models/user'

const session = await User.startSession()
session.startTransaction()

try{
  const user = await User.findOne({ email: 'test@test.com' })
  user.email = 'test111@test111.com'
  await user.save()
  
  throw
}
catch(e){
  await session.abortTransaction()
}
finally{
  await session.endSession()
}

但在數據庫中我看到:

“電子郵件”:“test111@test111.com”

為什么 abortTransaction() 不能按預期工作? 我做錯了什么?

將 session 傳遞給事務中涉及的 DB 方法:

 const user = await User.findOne({ email: 'test@test.com' }, null, { session })
 user.email = 'test111@test111.com'
 await user.save({ session })

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM