Aktualisieren Sie das Push-Array in MongoDB
- Operatoren in MongoDB
-
$push
-Operator in MongoDB - Push-Elemente in ein Array in MongoDB
- Push-Elemente am Anfang des Arrays in MongoDB
- Push-Elemente am Ende des Arrays in MongoDB
- Pushen Sie mehrere Elemente in MongoDB
Dieser Anleitungsbeitrag zeigt Ihnen, wie Sie mit verschiedenen Techniken Elemente zu einem Array in MongoDB hinzufügen. Das Pushen oder Hinzufügen von Elementen zu einem Array ist äußerst praktisch, um schnell eine Liste anzuhängen, indem Objekte in einem vorhandenen MongoDB-Dokument hinzugefügt oder verschoben werden.
Die Lektion lehrt, wie man sowohl negative als auch positive Ganzzahlen für push
-Operationen verwendet, wobei eine negative Ganzzahl zusätzliche push
-Möglichkeiten bietet, um Daten in das Array einzufügen.
Voraussetzung:
- MongoDB muss entsprechend installiert und konfiguriert sein, um Elemente zu einem Array in MongoDB hinzuzufügen.
- Ein grundlegendes Verständnis der Funktionsweise von Arrays.
Sehen wir uns zunächst das Inhaltsverzeichnis dieses Artikels an.
- Operatoren in MongoDB
$push
-Operator in MongoDB- Elemente in ein Array verschieben
- Schieben von Elementen am Anfang des Arrays
- Schieben von Elementen am Ende des Arrays
Operatoren in MongoDB
Operatoren sind spezielle Symbole oder Schlüsselwörter, die einem Compiler oder Interpreter mitteilen, wie er mathematische oder logische Operationen ausführen soll. Die Abfrageoperatoren erweitern die Möglichkeiten von MongoDB, indem sie es Entwicklern ermöglichen, komplizierte Abfragen zu schreiben, um mit Datensätzen zu interagieren, die für ihre Anwendungen relevant sind.
Im Folgenden sind die verschiedenen Arten von Operatoren in MongoDB aufgeführt.
- Abfrage- und Projektionsoperatoren – Abfrageoperatoren helfen beim Auffinden von Daten in einer Datenbank, während Projektionsoperatoren ändern, wie Daten angezeigt werden.
- Update-Operatoren – Update-Operatoren ermöglichen es Ihnen, Daten zu Ihrer Datenbank zu ändern oder hinzuzufügen.
- Aggregation Pipeline Stages – Verfügbare Aggregationsstufen für die Aggregation Pipeline.
- Aggregations-Pipeline-Operatoren – Aggregations-Pipeline-Operationen verfügen über eine Sammlung von Operatoren, die zum Definieren und Bearbeiten von Dokumenten in Pipeline-Stufen verfügbar sind.
- Abfragemodifikatoren – Abfragemodifikatoren bestimmen, wie Abfragen ausgeführt werden.
$push
-Operator in MongoDB
In MongoDB wird der Operator $push
verwendet, um einen Wert an ein Array anzuhängen. Der $push
-Operator ist ein update
-Operator.
Befindet sich das angegebene Feld nicht in dem zu ändernden Dokument, erstellt der Operator $push
es als neues Feld mit dem angegebenen Wert als Element. Der Vorgang ist fehlgeschlagen, wenn das Aktualisierungsfeld nicht vom Array-Typ war.
Beim Aktualisieren hängt der Operator $push
das gesamte Array als einzelnes Element an, wenn der Wert ein Array ist. Verwenden Sie den Operator $push
mit dem Modifikator $each
, um jedes Wertelement einzeln hinzuzufügen.
Syntax:
db.collection.update( <query>,{ $push: { <field>: <value> } })
Beispiel für den MongoDB-Operator $push
:
Wenn Sie 95
an das Array-Feld anhängen möchten, das ausgeführt wird, wenn die Bedingung Fächer
Mathematik
ist, können wir den MongoDB-Befehl unten verwenden.
db.student.update( { "subjects" : "maths" },{ $push: { "achieve": 95 } });
Da das im vorigen Beispiel beschriebene Kriterium zu dieser Aktion passt, wird der Wert 95
an das Array completed angehängt.
So sehen Sie sich das neu aktualisierte Dokument an:
db.student.find().pretty();
Die Ausgabe der oben angegebenen Abfrage ist in diesem Screenshot zu sehen.
Beispiel für MongoDB $push
, wenn das Feld kein Array ist:
Wenn Sie 2
zur Spalte sem
hinzufügen möchten, die kein Array-Typ-Feld ist, können wir den MongoDB-Befehl unten verwenden.
db.student.update( { "subjects" : "maths" },{ $push: { "sem": 2 } });
Da das Feld sem
im obigen Beispiel nicht vom Typ Array ist, schlägt die Operation fehl und führt zu folgendem Ergebnis.
Cannot apply $push/$push All modifier to non-array
Push-Elemente in ein Array in MongoDB
Dieser Abschnitt zeigt, wie man einen $push
-Operator verwendet, wie z. B. eine update
-Operation, um einem Array ein Element hinzuzufügen.
Erstellen Sie zunächst wie folgt einen Beispieldatensatz mit Früchten.
use fruitdb
switched to db fruitdb
db.fruit.insert({
"_id": "100",
"fruitArray": ['mango', 'banana', 'orange']
});
WriteResult({ "nInserted" : 1 })
Überprüfen Sie nun den Einfügevorgang mit dem folgenden Befehl.
db.fruit.find({_id: "100"});
Das Ergebnis sollte wie folgt aussehen.
Fügen Sie nun eine weitere Frucht in das fruitArray
ein. Führen Sie in diesem Beispiel den folgenden Befehl aus, um pineapple
hinzuzufügen.
db.fruit.update(
{ "_id": "100" },
{
$push: {
fruitArray: "pineapple"
}
}
);
Die Ergebnisse sollten wie folgt aussehen.
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
Führen Sie den folgenden Befehl aus, um zu überprüfen, ob Ananas erfolgreich als Element zum fruitArray
hinzugefügt wurde.
db.fruit.find({_id: "100"}).pretty();
Die Ausgabe sollte wie folgt aussehen.
Die Ergebnisse zeigen, dass der Operator $push
das Wort pineapple
am Ende des fruitArray
eingefügt hat.
Push-Elemente am Anfang des Arrays in MongoDB
Im vorangegangenen Abschnitt wurde beschrieben, wie Sie ein neues Element an den Anfang eines Arrays anhängen. Dieser Abschnitt zeigt, wie man das Element grapes
am Anfang des Arrays einfügt.
Der folgende Befehl wird verwendet, um diese Aktion auszuführen.
db.fruit.update(
{ "_id": "100" },
{
$push: {
fruitArray: {
$each: ['grapes'],
$position: 0
}
}
}
);
Der folgende Befehl kann dann bestätigen, dass der Update-Vorgang erfolgreich war.
db.fruit.find({_id: "100"}).pretty();
Die Ausgabe sollte wie folgt aussehen.
In der vorangegangenen Operation wurde der Operator $position
verwendet. Wie der Name schon sagt, platziert dieser Befehl das Element innerhalb des vom Benutzer definierten Arrays.
Denken Sie auch daran, dass die positive Ganzzahl, die für den Wert $position
verwendet wird, vom linken oder Anfang des Arrays verschoben wird.
Push-Elemente am Ende des Arrays in MongoDB
Der vorangegangene Abschnitt zeigt, wie Sie ein Element am Anfang eines Arrays einfügen, indem Sie eine positive ganze Zahl als Wert des Operators $position
verwenden. In diesem Teil erfahren Sie, wie Sie die Elemente mit einer negativen Ganzzahl als Wert pushen, wie hier gezeigt.
db. fruit.update(
{ "_id": "100" },
{
$push: {
fruitArray: {
$each: ['apple'],
$position: -1
}
}
});
Die Ausgabe sollte wie folgt aussehen.
Mit einer -1
für den Wert wurde Apfel
an die vorletzte Position der Elementliste gesetzt, wobei das letzte Element an Position 0
steht.
Pushen Sie mehrere Elemente in MongoDB
Dieser Abschnitt zeigt, wie Sie mehrere Elemente in ein Array einfügen oder verschieben.
Fügen Sie zuerst innerhalb des Frucht
-Dokuments ein weiteres Array hinzu.
db. fruit.insert({
"_id": "101",
"fruitArray": ["strawberry","guava","lemon"]
});
Es sollte ein neues Dokument mit den folgenden Informationen erstellt werden.
Verwenden Sie nun den folgenden Befehl, um dem neuen Dokument zahlreiche Elemente hinzuzufügen.
db.fruit.update(
{ "_id": "101" },
{
$push: {
fruitArray: {
$each: ['pear', 'cherry', 'lime'],
$position: -2
}
}
}
);
Da die Elemente ['pear', 'cherry', and 'lime']
im obigen Code gepusht werden, kann dieses Array als ein Element betrachtet werden. Dies schiebt oder bewegt pear
auf die angegebene Position von -2
, gefolgt von cherry
und lime
, in dieser Reihenfolge.
Es ist zu beachten, dass die Elemente in der angegebenen Reihenfolge zum Array hinzugefügt werden.
Dieser Artikel führte Sie durch die verschiedenen Methoden zum Hinzufügen von Elementen zu einem Array in MongoDB. Zuerst zeigte die Lektion die Verwendung eines $push
-Operators, um Elemente zu einem Array hinzuzufügen, wie z. B. eine update
-Operation.
Anschließend wurde demonstriert, wie man einen Beispieldatensatz generiert, Elemente in das Array einfügt und schließlich den Einfügeprozess testet. In dem Artikel wurde auch erläutert, wie Elemente am Anfang, in der Mitte und am Ende eines Arrays und wie mehrere Elemente verschoben werden.
Denken Sie daran, dass eine negative Ganzzahl als Wert Elemente an das Ende des Arrays verschiebt, während eine positive Ganzzahl Elemente vom linken oder Anfang des Arrays verschiebt.