我試圖了解如何開始和撤消交易。我認為session.abortTransaction()會導致事務中的所有更新都撤消,在這種情況下,只是Profile.updateOne. 但是在我運行下面的代碼之后,Profile1 的用戶名被更改為'phoebe2'. 由于交易被中止,我仍然希望用戶名是舊用戶名。
如何撤消交易?
const session = await mongoose.startSession();
await session.startTransaction();
await Profile.updateOne({ _id: '1' }, { username: 'phoebe2' });
// undo transaction
await session.abortTransaction();
await session.endSession();
uj5u.com熱心網友回復:
你需要session作為最后一個引數傳遞updateOne
const session = await mongoose.startSession();
await session.startTransaction();
await Profile.updateOne({ _id: '1' }, { username: 'phoebe2' },{session});
// undo transaction
await session.abortTransaction();
await session.endSession();
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/531146.html
上一篇:在查找$match中使用兩個集合(原始和外國)的條件
下一篇:如何在不使用Swift語言中的內置函式的情況下計算整數的平方根?我嘗試了下面的代碼并進行了搜索,但沒有得到更好的解決方案
