我正在学习均值堆栈开发。我正在尝试执行一个事务。我遵循的步骤:
1.我启动mongod.exe,并将标志设置为--replSet rs 0。
1.然后我启动了Mongo Shell,然后我写了下面的代码。
let session: ClientSession | undefined;
try {
const data = req.body;
console.log(data);
const movie = new Movie({ name: data['name'], cast: data['cast'] });
const conn = await db.connect()
session = await conn.startSession()
session.withTransaction(async () => {
const doc = await movie.save({ session: session, validateBeforeSave: true });
SuccessResponse(res);
res.json(doc);
})
await session.commitTransaction()
session.endSession();
} catch (err) {
console.log(err)
await log(err)
if (session) {
//session.abortTransaction();
session.endSession()
}
ServerError(res);
res.end();
}
但是我得到了以下错误
MongoError: Current topology does not support sessions
任何帮助。
1条答案
按热度按时间brc7rcf01#
看起来好像如果你的连接被挂起了(例如,遇到了断点),
MongoError: Current topology does not support sessions
会被抛出,即使Current topology..
部分与它无关。也许Session connection timed out. Try again
会更合适。因此,如果您确定您的设置应该支持会话,请重试。