最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

Nodejs一对一地在mongodb中插入5万条记录导致堆内存不足

运维笔记admin11浏览0评论

Nodejs一对一地在mongodb中插入5万条记录导致堆内存不足

Nodejs一对一地在mongodb中插入5万条记录导致堆内存不足

我正在尝试在mongodb中插入5万条记录(5,00,000)记录这些值存储在csv中并进行解析,然后存储到数组中。使用递归函数一个接一个地插入记录,当再次插入一个记录时,将调用相同的函数。此过程适用于2,00,000条记录,但是当记录大小增加到20万以上时,会导致堆内存不足(JS堆栈跟踪)。

下面是我正在使用的递归函数

function insertMongoSingle(fileRows, x, total){
    if(x < total){
        let item = fileRows.shift();
        let record  = new Record({i:item}, false);
        record.save(function(error, contact){
            if(error){
                console.log(error);
                x++;
                insertMongoSingle(fileRows, x ,total);
            }else{
                x++;
                insertMongoSingle(fileRows, x, total);
            }
        }); 
    }else{
        console.log('completed');
    }
}

其中x是count,fileRows是对象数组中的总记录,而total是fileRows的长度

回答如下:

我建议使用bulk insert mongo功能。

已经对stackoverflow给出了详细的答案:Inserting a big array of object in mongodb from nodejs

或者,如果您需要其他解决方案,可以查看我的加载示例:Loading 10K of seed data

发布评论

评论列表(0)

  1. 暂无评论