Dux*_*ime 6 javascript mongodb node.js
我正在尝试使用MongoJS作为Node中本机Mongo驱动程序的包装器.我喜欢用模拟方法在我的收藏中的文件,如JavaScript类populate(),save()等等.
在大多数语言中,例如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();
});
};
Run Code Online (Sandbox Code Playgroud)
我发现只要close()在MongoJS对象上调用该方法,我就无法在后续调用中打开新连接.但是,如果我不调用此方法,则一旦所有异步调用完成,Node进程永远不会终止,就像它等待与Mongo断开连接一样.
使用MongoJS管理与Mongo的连接的正确方法是什么?
如果保持连接处于打开状态而不是断开连接,您的应用程序将获得更好的性能.建立TCP连接,并且在MongoDB的情况下,在适当的情况下发现副本集/分片配置与实际处理查询和更新所花费的时间相比相对昂贵.最好这次"花"一次并保持连接开放而不是不断地重新做这项工作.
| 归档时间: |
|
| 查看次数: |
6165 次 |
| 最近记录: |