2012-10-15 261 views
12

爲什麼我無法通過_id刪除記錄?通過ID刪除記錄?

代碼:

db.collection('posts', function(err, collection) { 
    collection.remove({_id: '4d512b45cc9374271b00000f'}); 
}); 

回答

33

您需要通過_id值作爲對象ID,而不是一個字符串:

var mongodb = require('mongodb'); 

db.collection('posts', function(err, collection) { 
    collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')}); 
}); 
+0

它的工作!謝謝) – Sable

+0

是否可以一次刪除ID數組? – Denis

+1

@Denis當然,只需使用['$ in'](http://docs.mongodb.org/manual/reference/operator/query/in/#op._S_in):'{_id:{$ in:idsArray} }' – JohnnyHK

4

的MongoDB現在已經打上了刪除方法已過時。它已被兩個單獨的方法取代:deleteOne和deleteMany。

這裏是他們相關的入門指南:https://docs.mongodb.org/getting-started/node/remove/

,這裏是一個快速的示例:

var mongodb = require('mongodb'); 

db.collection('posts', function(err, collection) { 
    collection.deleteOne({_id: new mongodb.ObjectID('4d512b45cc9374271b00000f')}, function(err, results) { 
     if (err){ 
     console.log("failed"); 
     throw err; 
     } 
     console.log("success"); 
    }); 
});