MongoDB Update (Einfügen einer Liste von Elementen in ein Array)

8

Ich möchte mehrere Elemente zu Arrays aus mehreren Zeilen in Mongo hinzufügen. Wie kann ich das tun?

Ich möchte damit beginnen:

%Vor%

und füge das Array [6,8] hinzu, wobei x gleich 'h' ist:

%Vor%     
hamed hamed 30.04.2012, 12:25
quelle

5 Antworten

11

Ich denke, was Sie suchen, ist der $ pushAll-Operator. Schau mal hier:

Ссылка

    
Adam Comerford 30.04.2012 13:04
quelle
8

Wenn Sie eine MongoDB-Sammlung mit dem Namen yourCollection und einen Datensatz mit dem Namen x haben, würden Sie das Sub-Array mit etwas wie diesem aktualisieren:

  

db.test.update ({"name": "x"}, {"$ pushAll": {arr: [1, 2, 3]}})

Das wichtige Keyword ist $ pushAll . Sie können damit Elemente zu Arrays innerhalb eines einzelnen Datensatzattributs hinzufügen.

    
theJollySin 01.05.2012 03:54
quelle
1

Wenn Sie mehrere Datensätze aktualisieren möchten, müssen Sie true als 4. Argument der Update-Funktion übergeben:

%Vor%

Nach der MongoDB Shell-Syntax für update ():

%Vor%
  • upsert - Wenn die Datensätze nicht existieren, fügen Sie einen ein. Upsert fügt nur ein einzelnes Dokument
  • ein
  • multil - gibt an, ob alle Dokumente, die den Kriterien entsprechen, aktualisiert werden sollten und nicht nur ein
Nate Ferrero 14.12.2012 18:39
quelle
1

Der einfachste Ansatz besteht in der Verwendung einer herkömmlichen Aktualisierungsoperation

%Vor%     
James Mallon 08.03.2017 21:08
quelle
0

$pushAll
Veraltet seit Version 2.4: Verwenden Sie stattdessen den Operator $push mit $each .

Der Operator $pushAll hängt die angegebenen Werte an ein Array an.

Der Operator $pushAll hat die Form:

%Vor%

Wenn Sie einen einzelnen Wert angeben, verhält sich $pushAll wie $push .

    
krekto 23.06.2017 12:10
quelle

Tags und Links