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

时间:2017-08-04 08:29:48

标签: mongodb mongo-shell

我想使用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]未定义:   @(壳):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

我再次收到错误

1 个答案:

答案 0 :(得分:0)

I achieve to create what i expect with these codes :

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);
}

I use this MongoDB manual.