我需要使用包含这些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;
});
}
});
此外,我需要在完成此操作后传递回调。
答案 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是个不错的选择: