使用 javascript 循环在 mongodb 中插入数据

Insert data in mongodb using javascript loop

我想用 javascript 循环在 mongodb 集合中插入数据。 这是我的代码:

var collection = db.DATA.find();

for (var i = 0; i < 3; i++) {
        db.PARSED_DATA.insert(collection[i].folders);
}

我有错误:

2017-08-04T10:17:06.390+0200 E QUERY [thread1] TypeError: collection[i] is undefined : @(shell):2:9

当我在 mongodb shell 中执行命令时:

var collection = db.DATA.find();
db.PARSED_DATA.insert(collection[0].folders);
db.PARSED_DATA.insert(collection[1].folders);
db.PARSED_DATA.insert(collection[2].folders);

我得到了预期的结果,但我仍然不明白为什么我的 for 循环不起作用。

编辑: 当我在 Robo 3T 中执行此操作时,我得到了预期的结果:

var collection = db.DATA.find().toArray();

for (var i = 0; i < 3; i++) {
        db.PARSED_DATA.insert(collection[i].folders);
}

Result in Robo 3T

但是当我在 bash 代码中使用

执行它时
mongo <myip>:27017 < db_parse.js

我又报错了

我用这些代码实现了我的期望:

db_parse.sh

mongo <myip>:27017 < db_parse.js

db_parse.js

use <db_name>

var collection = db.DATA.find();

while(collection.hasNext()){
        db.PARSED_DATA.insert(collection.next().folders);
}

我使用thisMongoDB手动