Враховуючи цей документ, збережений у MongoDB
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Об'єкт з новою інформацією про param2
та param3
від зовнішнього світу потребує збереження
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
Я хочу об'єднати / накласти нові поля над існуючим станом об’єкта, щоб парам1 не видалявся
Роблячи це
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, але будь-який приклад буде вдячний