Учитывая этот документ сохранен в MongoDB
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Объект с новой информацией о param2
и param3
от внешнего мира , должен быть сохранен
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
Я хочу объединить / наложить новые поля поверх существующего состояния объекта, чтобы param1 не был удален
Делая это
db.collection.update( { _id:...} , { $set: { some_key : new_info } }
Это приведет к тому, что MongoDB будет работать именно так, как было задано, и установит some_key в это значение. замена старого.
{
_id : ...,
some_key: {
param2 : "val2_new",
param3 : "val3_new"
}
}
Каким образом MongoDB может обновлять только новые поля (без явного указания их по одному)? чтобы получить это:
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2_new",
param3 : "val3_new"
}
}
Я использую Java-клиент, но любой пример будет оценен