gpt4 book ai didi

javascript - 使用 MongoJS 管理与 Mongo 的连接的正确方法是什么?

转载 作者:IT老高 更新时间:2023-10-28 13:24:50 25 4
gpt4 key购买 nike

我正在尝试使用 MongoJS作为 Node.js 中原生 Mongo 驱动程序的包装器。我正在使用 populate()save() 等方法将集合中的文档建模为 JavaScript 类。

在 C# 和 Java 等大多数语言中,我习惯于为每个查询显式连接然后断开连接。大多数示例仅提供连接示例,但在完成后从不关闭连接。我不确定驱动程序是否能够自行管理,或者我是否需要自己手动管理。文档很少。

以下是相关代码:

User.prototype.populate = function(callback) {
var that = this;

this.db = mongo.connect("DuxDB");
this.db.collection(dbName).findOne({email : that.email}, function(err, doc){
if(!err && doc) {
that.firstName = doc.firstName;
that.lastName = doc.lastName;
that.password = doc.password;
}

if (typeof(callback) === "function"){
callback.call(that);
}

that.db.close();
});
};

我发现,一旦我在 MongoJS 对象上调用 close() 方法,我就无法再在后续调用中打开新连接。但是,如果我不调用此方法,那么一旦所有异步调用完成,Node 进程就永远不会终止,就好像它正在等待与 Mongo 断开连接一样。

使用 MongoJS 管理与 Mongo 的连接的正确方法是什么?

最佳答案

如果您保持连接打开而不是断开连接,您的应用程序将获得更好的性能。与实际处理查询和更新所花费的时间相比,建立 TCP 连接,并且在 MongoDB 的情况下,在适当的情况下发现副本集/分片配置是相对昂贵的。最好“花费”一次并保持连接打开,而不是不断地重新做这项工作。

关于javascript - 使用 MongoJS 管理与 Mongo 的连接的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10215876/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com