MongoDB Element zu Array hinzufügen
Dieser Artikel befasst sich mit vielen Methoden zum Hinzufügen zu einem Array in MongoDB.
Zum Array in MongoDB hinzufügen
Verwenden Sie den Operator $push
, um einem Array Wert hinzuzufügen
Der Operator $push
ist einer der verschiedenen Array-Aktualisierungsoperatoren, die MongoDB anbietet, um den Inhalt von Array-Feldern in Dokumenten zu aktualisieren. Der Operator $push
kann einem Array einen bestimmten Wert hinzufügen.
Der Operator $push
fügt Elemente am Ende des Arrays hinzu. Diese Aktion schlägt fehl, wenn das vom Operator $push
angegebene Feld kein Array ist.
Syntax:
{
$push: {
<field1>: <value1>,
<field2>: <value2>,
...
}
}
In diesem Fall kann das Feld
durch Arrays, eingebettete/verschachtelte Dokumente oder Punktnotation angegeben werden. Je nach Bedarf können Sie diesen Operator mit Methoden wie update()
, findAndModify()
usw. kombinieren.
Der Operator $push
fügt das Array-Feld mit dem Wert als seine Elemente hinzu, wenn das bereitgestellte Feld nicht bereits im Dokument vorhanden ist.
Das gesamte Array wird als einzelnes Element hinzugefügt, wenn der Wert des Operators $push
ein Array ist. Zusätzlich können Sie den $each
-Modifikator und den $push
-Operator verwenden, wenn Sie jede Wertkomponente einzeln hinzufügen möchten.
Betrachten Sie das folgende Beispiel, um die vorherige Idee besser zu verstehen.
db.employees.update(
{name: "John Doe"},
{$push: {'professional_skills.$.technical': { skill: "C++", exp: '1' }}}
)
Im obigen Beispiel ändern wir den Benutzer "John Doe"
in der Sammlung employees
. Das Array professional_skills
enthält die technischen Fähigkeiten, Kommunikationsfähigkeiten usw., die wir an dieser Stelle speichern.
Wir treiben das neue technische Know-how eines Mitarbeiters in technische Fähigkeiten um, indem wir seine Erfahrung als Objekt integrieren. Führen Sie die obige Codezeile in MongoShell aus, das mit MongoDB kompatibel ist.
Ausgang:
{
"_id" : ObjectId("54f612b6029b47919a90cesd"),
"email" : "johndoe@exampledomain.com",
"name" : "John Doe",
"country" : "USA",
professional_skills: [
{
technical:[
{ skill:'javascript', exp: 4},
{ skill:'c', exp: 3}
]
},
]
}
Verwenden Sie den Operator $addToSet
, um einem Array Wert hinzuzufügen
Beim Hinzufügen eines Werts zu einem Array prüft der Operator $addToSet
, ob der Wert bereits im Array vorhanden ist; ansonsten tut es nichts. Dieser Operator fügt dem Array keine doppelten Elemente hinzu und wirkt sich nicht auf bereits vorhandene doppelte Elemente aus.
Die Reihenfolge der Werte ist in dieser Situation irrelevant.
Syntax:
{
$addToSet: {
<field1>: <value1>,
<field2>: <value2>,
...
}
}
In diesem Fall kann das Feld
durch Arrays, eingebettete/verschachtelte Dokumente oder Punktnotation angegeben werden. Je nach Bedarf können Sie diesen Operator mit Methoden wie update()
, findAndModify()
usw. kombinieren.
Andere Felder als Arrays können mit diesem Operator nicht verwendet werden. Der Operator $addToSet
erzeugt im Dokument ein Array-Feld mit Werten oder Items, wenn das angeforderte Feld nicht existiert.
Betrachten Sie das folgende Beispiel, um die vorherige Idee besser zu verstehen.
db.employees.update(
{name: "John Doe"},
{$addToSet: {'professional_skills.$.technical': { skill: "C++", exp: '1' }}}
)
Im obigen Beispiel ändern wir den Benutzer "John Doe"
in der Sammlung employees
. Das Array professional_skills
enthält die technischen Fähigkeiten, Kommunikationsfähigkeiten usw., die wir an dieser Stelle speichern.
Wir treiben das neue technische Know-how eines Mitarbeiters in technische Fähigkeiten um, indem wir seine Erfahrung als Objekt integrieren. Der Hauptunterschied zwischen ihnen besteht darin, dass $addToSet
das Element hinzufügt, wenn es noch nicht existiert, während $push
das neue Element an das Array oder die Liste anhängt.
Führen Sie die obige Codezeile in MongoShell aus, das mit MongoDB kompatibel ist.
Ausgang:
{
"_id" : ObjectId("54f612b6029b47919a90cesd"),
"email" : "johndoe@exampledomain.com",
"name" : "John Doe",
"country" : "USA",
professional_skills: [
{
technical:[
{ skill:'javascript', exp: 4},
{ skill:'c', exp: 3}
]
},
]
}
Shraddha is a JavaScript nerd that utilises it for everything from experimenting to assisting individuals and businesses with day-to-day operations and business growth. She is a writer, chef, and computer programmer. As a senior MEAN/MERN stack developer and project manager with more than 4 years of experience in this sector, she now handles multiple projects. She has been producing technical writing for at least a year and a half. She enjoys coming up with fresh, innovative ideas.
LinkedIn