350 Stimmen

Wie kann ich Dokumente mit Node.js Mongoose entfernen?

FBFriendModel.find({
    id: 333
}, function (err, docs) {
    docs.remove(); //Remove all the documents that match!
});

Das obige Verfahren scheint nicht zu funktionieren. Die Datensätze sind immer noch da.

Kann jemand helfen?

14voto

bhavsac Punkte 141

Wenn nur ein Objekt entfernt werden soll, können Sie

Person.findOne({_id: req.params.id}, function (error, person){
        console.log("This object will get deleted " + person);
        person.remove();

    });

In diesem Beispiel löscht Mongoose aufgrund der Übereinstimmung von req.params.id.

9voto

Simon H Punkte 19309

Ich bevorzuge die Versprechensschreibweise, bei der man z.B.

Model.findOneAndRemove({_id:id})
    .then( doc => .... )

9voto

trusktr Punkte 39258

.remove() funktioniert wie .find() :

MyModel.remove({search: criteria}, function() {
    // removed.
});

7voto

satyam kumar Punkte 1399

Zum Entfernen von Dokumenten verwende ich am liebsten Model.remove(conditions, [callback])

Bitte lesen Sie die API-Dokumentation zum Entfernen :-

http://mongoosejs.com/docs/api.html#model_Model.remove

In diesem Fall lautet der Code:-

FBFriendModel.remove({ id : 333 }, function(err, callback){
console.log(‘Do Stuff’);
})

Wenn Sie Dokumente entfernen möchten, ohne auf eine Antwort von MongoDB zu warten, übergeben Sie keinen Callback, sondern rufen Sie exec für die zurückgegebene Query auf

var removeQuery = FBFriendModel.remove({id : 333 });
removeQuery.exec();

6voto

David Losert Punkte 4444

Sie können die Abfrage direkt in der remove-Funktion verwenden, also:

FBFriendModel.remove({ id: 333}, function(err){});

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X