2012-10-15 5 views
12

Perché non riesco a rimuovere il record con _id?Rimuovere il record con ID?

Codice:

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

risposta

33

è necessario passare il valore _id come ObjectID, non una stringa:

var mongodb = require('mongodb'); 

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

E funziona! Grazie) – Sable

+0

È possibile rimuovere una matrice di ID contemporaneamente? – Denis

+1

@Denis Certo, usa ['$ in'] (http://docs.mongodb.org/manual/reference/operator/query/in/#op._S_in):' {_id: {$ in: idsArray} } ' – JohnnyHK

4

MongoDb ora ha segnato il metodo remove come deprecato. È stato sostituito da due metodi separati: deleteOne e deleteMany.

Qui è la loro relativa guida introduttiva: https://docs.mongodb.org/getting-started/node/remove/

ed ecco un breve esempio:

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"); 
    }); 
});