使用mongo中的查询结果填充持久集合的建议方法是什么?

时间:2012-03-28 12:55:37

标签: python mongodb

显而易见的方法是执行find然后迭代游标并逐个插入元素。这对我来说似乎效率低下。

另一种方法是在查询结果上定义map-reduce,这不会减少任何内容,并使用out参数指定目标集合。这看起来像个黑客。

有更高效,更直接的方法吗?

2 个答案:

答案 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

使用用例对它们进行投票和/或评论,以引起他们的注意。