当前拓扑不支持会话

Lal*_*til 5 transactions mongoose mongodb node.js async-await

在此输入图像描述

你好,

我收到错误“当前拓扑不支持会话”,请参阅附图。

并编码为

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

上面的代码完全可以在本地系统上运行。但云服务器(数字海洋)上发生错误,如果需要其他信息,请告诉我。

Shi*_*dey 3

看来您还没有MongoDB 4.0在支持交易的云服务器上安装。

事务仅适用于 >= MongoDB v4.0