首页 > 解决方案 > mongodb批量插入 - Javascript不起作用

问题描述

我想将一堆记录插入到一​​个集合中,但不是一次记录文档,我想像使用“insertMany()”的批处理一样进行操作。我编写的脚本如下:

var batch = [];
for (i=0; i<10; i++) { 
    names=["exam", "essay", "quiz"]; 
    for (j=0;j<3;j++) { 
        batch += '\n{ student : ' + i + ', type : "' + names[j] + '", score : ' + Math.round(Math.random()*100) + '}' ;
        if (mod i%3 == 0) {
            batch = batch.slice(0, batch.lenght(-1));
            db.scores.insertMany( batch )
            batch=[];
        }
    }
}

上面的代码不起作用。有两个问题:首先,数组项有双引号,其次,“切片”没有生效。

在修复 Javascript 方面需要帮助。

标签: javascriptmongodbbatch-insert

解决方案


这里有几个问题:

数组项周围有双引号

batch += '\n{ student : ' + i + ', type : "' + names[j] + '", score : ' + Math.round(Math.random()*100) + '}' ;

你想创建一个对象而不是一个字符串。batch = { student: i, type: names[j], score: ..}将为您创建一个对象。

“切片”没有生效

batch = batch.slice(0, batch.lenght(-1));

你拼错了length,length是一个属性而不是一个函数。batch.slice()将复制数组(但您正在重置它,因此实际上没有必要)。


推荐阅读