2014-05-07 90 views
0

我收集了一些不好的数据。我想根据某些查询批量删除这些数据。在mongo shell中这很容易,因为db.collection.remove()允许您指定justOne选项。有没有办法在node.js驱动程序中执行此操作? findAndRemove似乎只删除1个文件,并没有选项使其成批量?NodeJS批量删除mongodb文档

db.collection(collection_name, function(err, collection){ 
    collection.findAndRemove({type: 'LUXURY'}, function(err, result){ 
    // result is only a single document 
    console.log(result._id.toString()); 
    }); 
}); 

我知道这还有一个办法是find()满足我的查询和使用initializeUnorderedBulkOp手动创建一个BulkOp和迭代我找到的结果填充它的所有文件,但我觉得应该有一个更简单的方法。

+0

你看过猫鼬了吗?它的超级全功能,将有你正在寻找的删除。我已经在几个网站上使用过它,它很棒。 http://mongoosejs.com/ –

+0

我听说过它,但没想到试一试。我会仔细看看的。你是否建议将我所有的代码都转移到使用猫鼬上,或者将mongo驱动程序与猫鼬交织是常见做法? – Comart

+0

经测试的代码是黄金。如果它的工作我不会迁移它。我会开始将它引入新功能并迁移,因为它是有意义的,但不是某些规则,特别是因为逻辑/语法非常相似。我真的很喜欢猫鼬,不能说足够好,并且正在几个项目中使用它。 –

回答

0

如果您使用的是节点mongo本机驱动程序,我看不到任何直接使用remove的原因。

db.collection(collection_name, function(err, collection){ 
    collection.remove({type: 'LUXURY'}, function(err, result){ 
    // your code here. 
    }); 
});