mongodb使用其他集合中的值过滤文档

时间:2016-10-07 17:07:06

标签: mongodb

我有两个收藏品,都有约100万份文件。

我想在col1中标记文档,如果它们存在于col2中:

db.col1.find().forEach(function(c1){
    var c2=db.col2.find(a:c1.a);
    if (c2!=null) {
        c1.mark=true;
        db.col1.save(c1);
    }
});

似乎上面的脚本没有运行所有文件,因此我只更新了几个(~50)。我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

我的猜测是因为save is asynchronous,并且当你开始执行操作太快时,它开始表现得很奇怪。我尝试更改逻辑以处理save回调,这样您就可以控制同时执行的保存数量。