Mongoose:通过Model.collection.insert批量插入导致Node.js崩溃,出现分段错误11
我有10000000个文档要插入MongoDB 我使用mongoose创建解析JSON的文档(JSON是通过转换大量txt文件的内容创建的) 我开始使用Mongoose:通过Model.collection.insert批量插入导致Node.js崩溃,出现分段错误11,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有10000000个文档要插入MongoDB 我使用mongoose创建解析JSON的文档(JSON是通过转换大量txt文件的内容创建的) 我开始使用模型。为每个文档创建,但速度太慢了,需要几天才能完成操作。 因此,我切换到Model.collection.insert以加快速度 这是我的saveToDB函数(用TypeScript编写): 我尝试了代码,我的解析器将数组构建为10000个文档,然后尝试将它们插入数据库。但是节点总是因为分段错误11而崩溃 即使我将限制设置为1(一次插入一个文档
模型。为每个文档创建,但速度太慢了,需要几天才能完成操作。
因此,我切换到Model.collection.insert
以加快速度
这是我的saveToDB
函数(用TypeScript编写):
我尝试了代码,我的解析器将数组构建为10000个文档,然后尝试将它们插入数据库。但是节点总是因为分段错误11而崩溃
即使我将限制设置为1(一次插入一个文档),也会发生这种情况。所以我猜它与Model.collection.insert
函数有关。但我对底层结构的了解还不足以理解这里发生了什么
有人遇到过这样的问题吗?我能做些什么来解决它呢?找到了答案。问题是我将mongoose模型实例推到了数组中。但只允许使用普通对象。通常,这是一条评论,但我不能发表评论,因为我的声望很低,但我觉得这些信息对某人很有用
被接受的答案是正确的,但我只是想说,我收到了一个不同的错误,以防其他人遇到相同的问题。我还插入了1000万条记录,并收到以下错误消息:
{ '0':
{ [MongoError: key $__ must not start with '$']
name: 'MongoError',
message: 'key $__ must not start with \'$\'' },
'1': undefined }
如您所见,错误消息根本没有帮助
我传入了mongo模型,而不是简单的旧JSON。谢谢你的帮助
{ '0':
{ [MongoError: key $__ must not start with '$']
name: 'MongoError',
message: 'key $__ must not start with \'$\'' },
'1': undefined }