Heim >Datenbank >MongoDB >Wie lösche ich Array-Elemente nach Index in MongoDB?

Wie lösche ich Array-Elemente nach Index in MongoDB?

PHPz
PHPznach vorne
2023-09-08 12:17:02976Durchsuche

如何在 MongoDB 中通过索引删除数组元素?

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen