Dato questo documento salvato in MongoDB
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Un oggetto con nuove informazioni da param2
e param3
verso il mondo esterno deve essere salvato
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
Voglio unire / sovrapporre i nuovi campi allo stato esistente dell'oggetto in modo che param1 non venga rimosso
Facendo questo
db.collection.update( { _id:...} , { $set: { some_key : new_info } }
Porterà a MongoDB sta facendo esattamente come è stato chiesto e imposta some_key su quel valore. sostituendo quello vecchio.
{
_id : ...,
some_key: {
param2 : "val2_new",
param3 : "val3_new"
}
}
Qual è il modo in cui MongoDB aggiorna solo i nuovi campi (senza indicarli esplicitamente uno per uno)? per ottenere questo:
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2_new",
param3 : "val3_new"
}
}
Sto usando il client Java, ma qualsiasi esempio sarà apprezzato