MongoDB Element zu Array hinzufügen

Shraddha Paghdar 20 Juni 2023
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 Paghdar avatar Shraddha Paghdar avatar

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

Verwandter Artikel - MongoDB Array