Jak częściowo zaktualizować obiekt w MongoDB, aby nowy obiekt nałożył / scalił się z istniejącym
Biorąc pod uwagę ten dokument zapisany w MongoDB
<code>{ _id : ..., some_key: { param1 : "val1", param2 : "val2", param3 : "val3" } } </code>
Obiekt z nowymi informacjamiparam2
iparam3
ze świata zewnętrznego należy uratować
<code>var new_info = { param2 : "val2_new", param3 : "val3_new" }; </code>
Chcę scalić / nałożyć nowe pola na istniejący stan obiektu, aby param1 nie został usunięty
Robiąc to
<code>db.collection.update( { _id:...} , { $set: { some_key : new_info } } </code>
Doprowadzi do tego, że MongoDB zrobi dokładnie to, o co został poproszony, i ustawia some_key na tę wartość. zastępując stary.
<code>{ _id : ..., some_key: { param2 : "val2_new", param3 : "val3_new" } } </code>
W jaki sposób MongoDB aktualizuje tylko nowe pola (bez jednoznacznego ich podawania)? aby to uzyskać:
<code>{ _id : ..., some_key: { param1 : "val1", param2 : "val2_new", param3 : "val3_new" } } </code>
Używam klienta Java, ale każdy przykład zostanie doceniony