Mongoose Model.remove (Rückruf) entfernt nichts aus meiner Sammlung

8

Ich versuche, den gesamten Inhalt aus meiner Mongoose-Datenbank zu entfernen, aber nichts scheint zu funktionieren.

Ich habe es versucht

%Vor%

Und

%Vor%

Auch wenn ich den .find() -Schritt entferne oder einen .exec() hinzufüge, wird mein Callback nie angezeigt und meine Daten sind immer noch da.

Ich bin mir ziemlich sicher, dass mein Modell und meine Verbindung in Ordnung sind:

  • Ich kann die Verbindungen in Mongos Log sehen
  • Ich kann Dokumente hinzufügen, indem ich dasselbe Modell woanders manipuliere

Related: Wie entferne ich Dokumente mit Node.js Mungo?

BEARBEITEN

Mein Problem wurde durch einen Syntaxfehler verursacht, der nicht angezeigt wurde. Die ausgewählte Antwort funktioniert und der obige Code funktioniert auch. Moderatoren sind willkommen, meine Frage zu entfernen, wenn es notwendig erscheint.

    
AsTeR 22.07.2014, 07:36
quelle

2 Antworten

20

Es ist kein "Abfrage" -Objekt, das von Mungo zurückgegeben wird, die einzige gültige Methode ist < a href="http://mongoosejs.com/docs/api.html#model_Model.remove"> .remove() :

%Vor%

Was ist das gleiche wie:

%Vor%

Wie bestimmen Sie auch, dass keine Dokumente entfernt werden? Möglicherweise in der falschen Sammlung suchen. Mongoose pluralisiert den Sammlungsnamen standardmäßig, sofern Sie den Sammlungsnamen nicht explizit wie folgt angeben:

%Vor%

Ohne dieses dritte Argument oder anderweitig auf dem Schema anzugeben, wird der Sammlungsname als "Mymodels" impliziert. Überprüfen Sie daher, ob Sie die richtige Sammlung sowie die richtige Datenbankverbindung haben, von der Sie erwarten, dass die Dokumente entfernt werden.

    
Neil Lunn 22.07.2014, 07:45
quelle
13

Die Funktion .remove funktioniert nur bei einer Mongoose-Dokumentmodellinstanz. Dies ist ein Beispiel, um ein Modell zu entfernen:

%Vor%

Wenn Sie jedoch Elemente mit einer bestimmten Abfrage entfernen, sollten Sie die Funktion remove wie die Funktion find verwenden:

%Vor%     
throrin19 22.07.2014 08:12
quelle