我想将一堆记录插入到一个集合中,但是我不想一次像使用“ 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=[];
}
}
}
上面的代码不起作用。有两个问题:首先,数组项周围有双引号,其次,“切片”没有生效。
需要帮助修复Java语言。
答案 0 :(得分:0)
这里有几个问题:
数组项周围有双引号
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()
将复制数组(但是您正在重置它,因此实际上没有必要)。