Node、Mongoose&Mongodb-还没有阅读源代码...

我有一个 node 应用程序,它打开一个文件,将行解析为记录,并将记录保存到mongodb.这些记录是Mongoose模型对象,要将它们保存到mongodb,我只需对它们调用save方法.

所以现在我很担心mongoose 管理db = mongoose.connect(url)的关系.我需要手动关闭它吗?如果是这样,我应该什么时候关闭它(因为一切都是异步进行的,很难说什么时候关闭连接)?

看来mongoose不仅让连接保持打开状态,还让我的脚本不会终止.在我对所有对象拨打save后,我能安全地关闭mongoose连接吗?否则,考虑到save的异步性质,很难确切知道何时关闭连接.

推荐答案

您确实需要调用mongoose.disconnect()来关闭连接,但您还需要等到所有save个调用都完成了异步工作(即调用回调)之后才能这样做.

所以,要么简单地计算一下还有多少未完成的任务需要跟踪,要么使用流控制框架(比如async)来做一些更优雅的事情.

Mongodb相关问答推荐

MongoDB中的数据类型没有通过数据库Pyspark更改(从字符串到日期)

Mongo聚合项目数组交集

使用MongoDB 4将根文档替换为数组

当日期和时间在不同键的字符串中时,Mongo 查询过滤今天的数据

Tableau 与 Mongo DB Atlas by MongoDB 的连接缓存问题

如何在 mongodb 查找的外键中使用正则表达式

有没有一种方法可以找到一个文档并通过 Go 更改 mongodb 中的 id/value 来克隆它

有谁知道这个错误的修复方法(TypeError: Cannot assign to read only property ‘map’ of object '#')

使用 mgo 从 golang 中的 Mongodb 中 Select 列

MongoDB 使用自定义表达式或函数进行排序

mongodb 模式设计命名约定

为什么不建议在 MongoDB 中使用服务器端存储函数?

`fields cannot be identical'和''` mongoimport错误

如何在我的Meteor 应用程序数据库中使用 mongoimport?

MongoDB 存储 ObjectId 的数组

如何使用node.js http服务器从mongodb返回大量行?

docker 在不同的端口上运行 mongo 映像

Mongoose Select 要从 findOneAndUpdate 返回的字段

将新值推送到 mongodb 内部数组 - mongodb/php

如何使用户的邮箱在 mongoDB 中唯一?