给定一组ID,删除包含这些ID的所有文档

时间:2014-01-01 19:28:49

标签: node.js mongodb

我需要使用包含这些ID的对象删除一组id。现在我正在迭代删除ti。是否可以立即删除它们?

我的代码(迭代地):

remove_data(doc[0]._id,function(result){
    for(entry in result) {
        db.mydata.remove({"_id":result[entry]}, function(err,doc) {
            if(err) throw err;            
        });
    }
});

此外,我需要在完成此操作后传递回调。

1 个答案:

答案 0 :(得分:3)

首先将ID组合成一个列表:

var ids = [];
for (var k in result) {
    if (result.hasOwnProperty(k)) {
        ids.push(result[k]);
    }
};

然后

db.mydata.remove({"_id": {"$in": ids}}, function(err) {
    // ...
});

旁注:如果您正在处理多个异步任务,并且必须在所有这些任务完成后调用回调,那么您应该使用某种异步控制流库。 Caolan的async.js是个不错的选择:

https://github.com/caolan/async