使用 MongoDB 本机驱动程序时在退出时关闭 MongoClient 连接?

Closing MongoClient connection on exit when using MongoDB Native driver?

每次服务器关闭时是否要关闭MongoClient连接?

我看过以下代码片段,想知道这是否真的有效并且应该这样做,或者是否完全没有必要在退出时执行关闭操作:

// Adding listeners
function setupListeners(client: MongoClient){
    client.addListener('topologyClosed', ()=>{
        isTopologyConnected = false;
        console.warn("topologyClosed");
    })
}
process.on("exit", () => {
    console.log("EXIT - MongoDB Client disconnected");
    closeConnection()
});

//Cleanups
//catching signals and doing cleanup
['SIGHUP', 'SIGINT', 'SIGQUIT', 'SIGILL', 'SIGTRAP', 'SIGABRT',
    'SIGBUS', 'SIGFPE', 'SIGUSR1', 'SIGSEGV', 'SIGUSR2', 'SIGTERM'
].forEach(function (signal) {
    process.on(signal, function () {
       if (isTopologyConnected){
                client.close();
            }
            process.exit(1);
    });
});

非常感谢。

Should the MongoClient connection be closed every time the server shuts down?

是的,关闭连接是个好习惯。对于每个连接,mongo DB 确实为其执行分配了一个线程。如果您不关闭它,它会继续使用数据库服务器上的资源。

Node.js 连接使用池连接到数据库,它可以在不使用时重复使用,但是如果您退出脚本,最好关闭连接,因为它不会自动关闭连接。