Dado este documento guardado en MongoDB¿Cómo se actualiza parcialmente un objeto en MongoDB por lo que el nuevo objeto se superpondrá/fusionarse con la existente
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Un objeto con nueva información sobre param2
y param3
del mundo exterior necesita ser salvado
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
quiero fusionar/superponer los nuevos campos sobre el estado actual del objeto para que param1 no se eliminan
Hacer esto
db.collection.update( { _id:...} , { $set: { some_key : new_info } }
dará lugar a MongoDB está haciendo exactamente como se lo pidió, y se pone some_key a ese valor. reemplazando el anterior.
{
_id : ...,
some_key: {
param2 : "val2_new",
param3 : "val3_new"
}
}
¿Cuál es la manera de tener la actualización MongoDB sólo nuevos campos (sin ellos indicando una por una de forma explícita)? Para conseguir esto:
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2_new",
param3 : "val3_new"
}
}
estoy usando el cliente de Java, pero ningún ejemplo se observará
favor votar por el tema de combinación $: https://jira.mongodb.org/browse/SERVER- 21094 – Ali