2016-04-25 10 views
0

I ein Objekt haben (Dokument) in mongo mit der unten gezeigten StrukturAktualisierungsfeld Elemente Position in mongo Objekt

{ 
    'key1' : 'value1', 
    'key2' : 'value2', 
    'array1' : [5, 2, 10, 11] 
} 

Jetzt möchte ich array1 als [5, 10, 2, 11] sich ändern durch Vertauschen 2 nd und 3 rd Elemente von Array.

Wie kann ich das tun?

Antwort

0

Nun, es gibt viele Möglichkeiten, um Array-Element zu mischen. Sie müssen herausfinden, welche am effizientesten ist.

z.B. In Ihrem Fall ist es viel einfacher, Array-Indizes auf dem Client zu reparieren und eine einzige Aktualisierungsanforderung an den Server zu stellen.

db.collection.update(
    {key1:"value1", key2:"value2"}, 
    {$set:{array1:[5,10,2,11]}} 
) 

Mit Hilfe der obigen Abfrage, Ihre resultierende Dokument

{ 
    "_id" : ObjectId("571dfcdce6d693e88c38242f"), 
    "key1" : "value1", 
    "key2" : "value2", 
    "array1" : [ 
     5.0, 
     10.0, 
     2.0, 
     11.0 
    ] 
} 

jedoch sein wird, wenn man Experimente machen wollen, sehen $position Betreiber

+0

Danke für die Antwort @Saleem, es lösen mein Problem. Aber gibt es keine andere Möglichkeit, dies zu tun, anstatt das vollständige Array zu setzen, indem Sie einfach die Position des Array-Elements ändern und das vollständige Objekt speichern? – Dau

Verwandte Themen