Como faço para atualizar parcialmente um objeto no MongoDB para que o novo objeto seja sobreposto / mesclado com o existente
Dado este documento salvo no MongoDB
<code>{ _id : ..., some_key: { param1 : "val1", param2 : "val2", param3 : "val3" } } </code>
Um objeto com novas informações sobreparam2
eparam3
do mundo exterior precisa ser salvo
<code>var new_info = { param2 : "val2_new", param3 : "val3_new" }; </code>
Eu quero mesclar / sobrepor os novos campos sobre o estado existente do objeto para que o param1 não seja removido
Fazendo isso
<code>db.collection.update( { _id:...} , { $set: { some_key : new_info } } </code>
Levará o MongoDB a fazer exatamente o que foi pedido e definirá some_key para esse valor. substituindo o antigo.
<code>{ _id : ..., some_key: { param2 : "val2_new", param3 : "val3_new" } } </code>
Qual é a maneira de fazer o MongoDB atualizar apenas novos campos (sem explicá-los um por um explicitamente)? para conseguir esta:
<code>{ _id : ..., some_key: { param1 : "val1", param2 : "val2_new", param3 : "val3_new" } } </code>
Estou usando o cliente Java, mas qualquer exemplo será apreciado