Node.js 在for each迭代上下文中关闭Mongo db连接的位置/时间

Node.js 在for each迭代上下文中关闭Mongo db连接的位置/时间,node.js,mongodb,asynchronous,Node.js,Mongodb,Asynchronous,我有一个node.js应用程序运行在heroku上,由Mongo db支持,其故障如下: 节点应用程序连接到db并将db和集合存储到“顶级”变量中(不确定全局是否是正确的词) 应用程序使用节点mongo驱动程序中的foreach()函数遍历数据库中的每个文档 每次迭代都会将文档id发送给另一个函数,该函数使用该id访问该文档上的字段,并根据该数据采取操作。在这种情况下,它会向亚马逊和沃尔玛的api请求更新定价信息。此函数也被限制,以避免太快发出太多请求 我的问题是,我如何知道关闭db连接是安全的

我有一个node.js应用程序运行在heroku上,由Mongo db支持,其故障如下:

节点应用程序连接到db并将db和集合存储到“顶级”变量中(不确定全局是否是正确的词)

应用程序使用节点mongo驱动程序中的foreach()函数遍历数据库中的每个文档

每次迭代都会将文档id发送给另一个函数,该函数使用该id访问该文档上的字段,并根据该数据采取操作。在这种情况下,它会向亚马逊和沃尔玛的api请求更新定价信息。此函数也被限制,以避免太快发出太多请求


我的问题是,我如何知道关闭db连接是安全的。我最好的办法是获得一个文档计数,乘以每个文档的外部api命中数,然后在每次api事务完成时将一个变量增加一个,然后根据预期的总数测试该数字,如果它命中,则关闭连接。这听起来太老套了,一定有更好的办法。有什么想法吗?

因为所有MongoDB驱动程序都维护一个连接池,所以应该在应用程序启动期间建立连接。您不需要手动关闭MongoDB连接。有关详细信息,请参阅。在发布此消息之前,我看到了该问题并相应地更改了代码,但我没有看到任何关于自动关闭连接的信息。如果是这样的话,我想问题解决了。谢谢你的评论。