Heim >Web-Frontend >js-Tutorial >Wie entferne ich ein Objekt aus einem Array in MongoDB?

Wie entferne ich ein Objekt aus einem Array in MongoDB?

Susan Sarandon
Susan SarandonOriginal
2024-11-03 18:32:29745Durchsuche

How to Remove an Object from an Array in MongoDB?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn