Sie können Array-Elemente nach Index entfernen, indem Sie die folgenden zwei Schritte verwenden: -
Der erste Schritt ist wie folgt: -
db.yourCollectionName.update({}, {$unset : {"yourArrayFieldName.yourIndexValue" : 1 }});
Die obige Syntax platziert einen Nullwert an der Position von „yourIndexValue“. Danach müssen Sie Nullwerte aus dem Array-Feld extrahieren, um sie aus den Array-Elementen zu entfernen.
Der zweite Schritt ist wie folgt:
db.yourCollectionName.update({}, {$pull : {"yourArrayFieldName" : null}});
Um die Syntax zu implementieren, erstellen wir eine Sammlung mit Dokumenten. Die Abfrage zum Erstellen einer Sammlung mithilfe von Dokumenten lautet wie folgt:
> db.removeArrayElementByItsIndexDemo.insertOne({"InstructorName":"David", "InstructorAge":28,"InstructorSubject":["MongoDB","MySQL","Java","SQL Server","PL/SQL"]}); { "acknowledged" : true, "insertedId" : ObjectId("5c8abbfc6cea1f28b7aa0803") }
Zeigen Sie alle Dokumente in der Sammlung mithilfe der Methode find() an. Die Abfrage lautet wie folgt:
> db.removeArrayElementByItsIndexDemo.find().pretty();
Das Folgende ist die Ausgabe:
{ "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" : "David", "InstructorAge" : 28, "InstructorSubject" : [ "MongoDB", "MySQL", "Java", "SQL Server", "PL/SQL" ] }
Dies ist die Abfrage zum Löschen von Array-Elementen nach Index.
Schritt 1 - Die Abfrage lautet wie folgt -
> db.removeArrayElementByItsIndexDemo.update({}, {$unset : {"InstructorSubject.2" : 1 }}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Schritt 2 -Die Abfrage lautet wie folgt -
> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Lassen Sie uns überprüfen, ob das Array-Element „Java“ gelöscht wurde. Die Abfrage lautet wie folgt:
> db.removeArrayElementByItsIndexDemo.find().pretty();
Das Folgende ist die Ausgabe:
{ "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"), "InstructorName" : "David", "InstructorAge" : 28, "InstructorSubject" : [ "MongoDB", "MySQL", "SQL Server", "PL/SQL" ] }
Bei Betrachtung der Beispielausgabe wurde das Array-Element „Java“ vollständig entfernt.
Das obige ist der detaillierte Inhalt vonWie lösche ich Array-Elemente nach Index in MongoDB?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!