假设在 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客户端,但是任何示例都将不胜感激