2012-10-15 3 views
12

왜 _id로 레코드를 삭제할 수 없습니까?ID로 레코드를 제거 하시겠습니까?

코드 :

var mongodb = require('mongodb'); 

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

답변

33

당신은 ObjectId가 아닌 문자열로 _id 값을 전달해야합니다. 그것은 두 개의 분리 된 메소드로 대체되었습니다 : 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"); 
    }); 
}); 
+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를 이제 제거 방법을 표시했다되지 않는 것으로 :

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