将find()的结果保存到另一个集合

时间:2018-12-11 08:13:24

标签: mongodb find

我想将find()命令的结果保存到一个新集合中(基于对类似问题Saving the result of a MongoDB query的回答)。

> db.collection2.insert(db.collection1.find({"person.name": "Carl"}))

然后我想看看这是否成功

> db.righthand.find()
[Object]

我不确定为什么要输出[Object],因为我认为它将插入db.collection1.find()的结果。

1 个答案:

答案 0 :(得分:1)

由于您插入了由 cursor 方法返回的find(),因此您在控制台中获得了[Object]

您真正需要的是在游标上使用 toArray() 方法,因为它返回一个包含所有文档的数组。该方法完全迭代光标,将所有文档加载到RAM中并耗尽光标。

所以您的插入操作应该像

> db.collection2.insert(db.collection1.find({"person.name": "Carl"}).toArray())

并以以下方式查询集合

> db.collection2.find().pretty()