Với tài liệu này được lưu trong MongoDBLàm thế nào để một phần cập nhật một đối tượng trong MongoDB nên đối tượng mới sẽ che phủ/sáp nhập với hiện tại một
{
_id : ...,
some_key: {
param1 : "val1",
param2 : "val2",
param3 : "val3"
}
}
Một đối tượng với thông tin mới về param2
và param3
từ thế giới bên ngoài cần phải được lưu
var new_info = {
param2 : "val2_new",
param3 : "val3_new"
};
tôi muốn kết hợp/che phủ các lĩnh vực mới trong trạng thái hiện tại của đối tượng để param1 mà không nhận được gỡ bỏ
Làm điều này
db.collection.update( { _id:...} , { $set: { some_key : new_info } }
Sẽ dẫn đến MongoDB thực hiện chính xác như được hỏi và đặt some_key thành giá trị đó. thay thế cái cũ.
{
_id : ...,
some_key: {
param2 : "val2_new",
param3 : "val3_new"
}
}
Cách để MongoDB cập nhật chỉ các trường mới (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 client Java, nhưng bất kỳ ví dụ sẽ được đánh giá cao
hãy bỏ phiếu cho việc hợp nhất vấn đề $: https://jira.mongodb.org/browse/SERVER- 21094 – Ali