【发布时间】:2019-05-24 12:09:59
【问题描述】:
嗨,
我收到错误“当前拓扑不支持会话” 请参考附图..
代码为
async function insertBooking(parking, aFunction) {
const session = await BookingSchema.startSession().catch(error => {
console.log(error);
});
try {
session.startTransaction();
let booking = new BookingSchema(parking)
mongoose.startSession();
booking.save(function (err, booking) {
if (booking) {
//code to be run
}
})
await session.commitTransaction().catch(error => {
console.log(error);
});
session.endSession()
} catch (error) {
await session.abortTransaction().catch(error => {
console.log(error);
});
session.endSession();
throw error;
}
}
以上代码完全可以在本地系统上运行。 但错误发生在云服务器(数字海洋) 如果需要其他信息,请告诉我。
【问题讨论】:
-
你检查过服务器上的mongodb版本吗?它必须 >=4.0
-
经过大量试验,我能够更改 mongodb 的版本 .. 首先我删除了旧的 mongodb 并安装了新版本.. 现在上面的代码工作正常.. ** 请让我知道如何检查mongodb版本.. **
-
运行
mongod了解版本。 -
尝试
> db.runCommand({buildInfo: 1})在云mongodb控制台获取版本。
标签: node.js mongodb mongoose transactions async-await