Cập nhật trường lồng trong object con với $set
Khi document chứa object con (embedded document), dùng dot notation để truy cập và cập nhật trường bên trong.
Dữ liệu sinh viên
> db.demo21.insertOne({
"StudentId": "STU-101",
"StudentDetails": { "StudentName": "Chris", "StudentAge": 21 }
});
Cập nhật tên sinh viên
> db.demo21.update(
{ "StudentId": 'STU-101' },
{ $set: { 'StudentDetails.StudentName': 'Robert' } }
);
Kết quả
{
"_id": ObjectId("..."),
"StudentId": "STU-101",
"StudentDetails": {
"StudentName": "Robert", // Đã thay đổi
"StudentAge": 21
}
}
Đặc điểm: Chỉ trường StudentName bị thay đổi, StudentAge giữ nguyên. Đây là ưu điểm của $set so với replace toàn bộ document.