显而易见的方法是执行find
然后迭代游标并逐个插入元素。这对我来说似乎效率低下。
另一种方法是在查询结果上定义map-reduce,这不会减少任何内容,并使用out参数指定目标集合。这看起来像个黑客。
有更高效,更直接的方法吗?
答案 0 :(得分:2)
如果您担心效率问题,可以使用eval()
> e_query
function e_query() {
db.collection1.find({...}).forEach(
function(obj){
db.collection2.insert(obj);
}
);
}
> db.eval(e_query)
答案 1 :(得分:2)
目前您必须按照描述使用变通方法,但您已经请求了所引用的功能但尚未实现:
https://jira.mongodb.org/browse/SERVER-610
https://jira.mongodb.org/browse/SERVER-2920
使用用例对它们进行投票和/或评论,以引起他们的注意。