MongoDB'ye kaydedilen bu belge göz önüne alındığında
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Üzerinde yeni bilgilerle bir nesne param2
ve param3
dış dünyadan kaydedilmesi gerekiyor
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
Param1 kaldırılmaması için yeni alanları nesnenin mevcut durumu üzerine birleştirmek / üzerine yerleştirmek istiyorum
Bunu yapmak
db.collection.update( { _id:...} , { $set: { some_key : new_info } }
MongoDB, tam olarak istendiği gibi yapıyor ve some_key değerini bu değere ayarlar. eskisinin yerine.
{
_id : ...,
some_key: {
param2 : "val2_new",
param3 : "val3_new"
}
}
MongoDB'nin yalnızca yeni alanları güncellemesinin (bunları açıkça tek tek belirtmeden) yolu nedir? bunu elde etmek için:
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2_new",
param3 : "val3_new"
}
}
Java istemcisini kullanıyorum, ancak herhangi bir örnek takdir edilecektir