Tôi nghĩ bạn vẫn cần thực hiện điều này với hai truy vấn. Tuy nhiên, sử dụng $ truy vấn
để update
, bạn có thể giữ nó cho một truy vấn trong trường hợp EID đã tồn tại.
db.col.update({"events.eid": 2}}, {$set: {"events.$.title: "Event 4", "events.$.start": new Date(2013, 08, 02}})
Nếu giá trị trả về từ đó chỉ ra rằng không tìm thấy bản ghi nào, thì bạn có thể chèn nó để thay thế.