2014-05-07 134 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. 
    }); 
});