对于我打开数据库的每个请求,查询,关闭数据库。
我偶尔会遇到connection already opened
问题。
我最终将配置更改为只打开mongo并保持打开状态。
这种方法的缺点是什么?
谢谢!
(注意:使用node.js)
答案 0 :(得分:3)
我看起来好像你应该打开一次连接并继续重复使用它,至少使用node-native-driver。驾驶员开发人员在此处发表的评论:https://github.com/mongodb/node-mongodb-native/issues/84
答案 1 :(得分:2)
这里的答案取决于您正在运行的版本。 main github page中描述的方法涉及“根据需要”打开/关闭连接。
目前正在努力正确支持副本集并提供一些基本的连接池。事实上,昨天有办理登机手续,以解决clean up of pooled connections on error。
鉴于文档提供了这种打开/关闭方法,这可能是要走的路。这就是我目前在我的应用程序中所做的事情。至于你所看到的问题,这实际上可能只是一个错误。同样,驱动程序上的版本是< 1.0并且昨天有一张办理登机手续办理了与您所遇到的相似的事情,因此可能存在一些问题。
编辑:我应该补充一点,在10gen团队的有限支持下,Christian在他自己的时间做这项工作是一个很棒的人。构建这样的驱动程序有很多工作,所以如果遇到重新使用开放连接等错误,肯定会提交错误和/或提供修复。
答案 2 :(得分:0)
我不能代表node.js驱动程序,但Java驱动程序设计为以这种方式使用:http://www.mongodb.org/display/DOCS/Java+Driver+Concurrency - 它在内部处理连接。也许node.js驱动程序也是如此。也许值得通过电子邮件向驱动程序的开发人员询问?