Entfernen eines Objekts aus einem Array in MongoDB
Beim Umgang mit Dokumenten, die Arrays enthalten, kann es erforderlich sein, bestimmte Objekte daraus zu entfernen . Dies tritt häufig bei Dokumenten auf, die eine Liste von Elementen oder ähnliche Einträge speichern. In MongoDB gibt es einen speziellen Operator namens $pull, der speziell für diesen Zweck entwickelt wurde.
Das bereitgestellte Beispiel zeigt ein Dokument mit einer Reihe von Elementen. Das Ziel besteht darin, das Elementobjekt mit der ID 23 zu entfernen. Der erste Versuch, $pull zu verwenden, ist falsch, da versucht wird, das ID-Feld direkt in der $pull-Anweisung abzugleichen, was nicht der korrekten Syntax entspricht.
Um das gewünschte Objekt erfolgreich zu entfernen, lautet die richtige Abfrage:
db.mycollection.update( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, false, // Upsert true, // Multi );
Diese Abfrage gibt an, dass sie das Dokument mit der angegebenen _id aktualisieren möchte, und wendet bei dieser Aktualisierung den $pull-Operator an zum items-Array, wobei jedes Array-Element mit einer ID von 23 abgeglichen wird.
Für diejenigen, die Mongoose/Node.js verwenden, lautet das entsprechende Code-Snippet:
<code class="javascript">Model.updateOne( { '_id': ObjectId("5150a1199fac0e6910000002") }, { $pull: { items: { id: 23 } } }, function(err, result) { // Handle error or result } );</code>
Das obige ist der detaillierte Inhalt vonWie entferne ich ein Objekt aus einem Array in MongoDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!