Heim > Datenbank > MongoDB > Hauptteil

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

PHPz
Freigeben: 2023-09-08 12:17:02
nach vorne
946 Leute haben es durchsucht

如何在 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 }});
Nach dem Login kopieren

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}});
Nach dem Login kopieren

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")
}
Nach dem Login kopieren

Zeigen Sie alle Dokumente in der Sammlung mithilfe der Methode find() an. Die Abfrage lautet wie folgt:

> db.removeArrayElementByItsIndexDemo.find().pretty();
Nach dem Login kopieren
Nach dem Login kopieren

Das Folgende ist die Ausgabe:

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "Java",
      "SQL Server",
      "PL/SQL"
   ]
}
Nach dem Login kopieren

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 })
Nach dem Login kopieren

Schritt 2 -Die Abfrage lautet wie folgt -

> db.removeArrayElementByItsIndexDemo.update({}, {$pull : {"InstructorSubject" : null}});
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Nach dem Login kopieren

Lassen Sie uns überprüfen, ob das Array-Element „Java“ gelöscht wurde. Die Abfrage lautet wie folgt:

> db.removeArrayElementByItsIndexDemo.find().pretty();
Nach dem Login kopieren
Nach dem Login kopieren

Das Folgende ist die Ausgabe:

{
   "_id" : ObjectId("5c8abbfc6cea1f28b7aa0803"),
   "InstructorName" : "David",
   "InstructorAge" : 28,
   "InstructorSubject" : [
      "MongoDB",
      "MySQL",
      "SQL Server",
      "PL/SQL"
   ]
}
Nach dem Login kopieren

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!

Quelle:tutorialspoint.com
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage