【问题标题】:MongoDB: connection already opened errorMongoDB:连接已打开错误
【发布时间】:2011-11-14 05:31:55
【问题描述】:

我不确定我是否有效地调用了数据库 mongo。现在我,打开数据库,获取集合,进行查询,关闭连接。

我,mongo 偶尔投掷有问题:connection already opened

编辑:我所做的只是快速登录和退出几次,然后抛出此错误,导致服务器崩溃。

什么会导致这个问题?

非常感谢您的帮助!

(我使用的是节点原生驱动)

【问题讨论】:

  • 视情况而定。如果要在同一页面内发出多个请求,请在页面结束前关闭连接
  • 大多数数据库的标准做法是使用连接池。池将根据需要自动打开额外的并发连接以满足需求,并且通常会在每个打开的连接闲置一段时间后开始关闭它。这比为每个请求打开和关闭新连接更有效。但是,我不确定如何使用 mongodb 和 node.js 完成此操作。
  • 也许这就是我需要的,我会调查的。谢谢!
  • 看来我应该只打开一次...

标签: javascript node.js mongodb database nosql


【解决方案1】:

由于 node.js 是异步的,你不能确定你的代码是否会一次完成。

可能是在异步操作期间(就像所有数据库操作一样),node.js 正在处理另一个请求,即使您已经打开了一个新连接,它也会打开一个新连接。

您应该为整个应用打开一个连接。在每次页面请求时都连接数据库效率太低,而且正如您所经历的,如果您没有正确实现它也会导致问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-19
    • 2017-01-18
    相关资源
    最近更新 更多