MongoDB retryWrites安装代码不起作用



现在,我正在尝试为MongoDB开发事务会话。

  • MongoDB版本:4.4.2
  • Mongoose版本:5.11.4

交易代码

const session = await mongoose.startSession();
session.startTransaction();
try {
const result = await storage.create([attachment], { session: session });
await req.files.newFile.mv(attachment.filePath);
await session.commitTransaction();
return res.send(result);
} catch (err) {
console.log(err);
await session.abortTransaction();
return res.status(500).send(err);
} finally {
session.endSession();
}

当我调用此代码时,它给了我以下错误消息。

MongoError:此MongoDB部署不支持可重试写入。请将retryWrites=false添加到连接字符串中。

因此,我在mongoose连接代码中添加了retryWrites=false代码。也是如此

const mongoose = require('mongoose');
mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
poolSize: 10,
});

成为

const mongoose = require('mongoose');
mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true,
retryWrites: false,
poolSize: 10,
});

但我仍然有同样的问题。。。我不确定问题出在哪里。请MongoDB专家告诉我解决方案。

请参阅使用MongoDB事务满足事务需求的要求。您可能正在使用独立部署。

最新更新