Đưa ra tài liệu này được lưu trong MongoDB
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Một đối tượng có thông tin mới trên param2
và param3
từ thế giới bên ngoài cần được lưu lại
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
Tôi muốn hợp nhất / lớp phủ các trường mới trên trạng thái hiện có của đối tượng để param1 không bị xóa
Làm cái này
db.collection.update( { _id:...} , { $set: { some_key : new_info } }
Sẽ dẫn đến MongoDB đang làm đúng như yêu cầu và đặt some_key thành giá trị đó. thay cái cũ.
{
_id : ...,
some_key: {
param2 : "val2_new",
param3 : "val3_new"
}
}
Cách để MongoDB chỉ cập nhật các trường mới (mà không nêu rõ từng trường một)? để có được điều này:
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2_new",
param3 : "val3_new"
}
}
Tôi đang sử dụng máy khách Java, nhưng bất kỳ ví dụ nào cũng sẽ được đánh giá cao