Myślę, że nadal będziesz musiał to zrobić za pomocą dwóch zapytań. Ale używając zapytania $
do update
, możesz zachować to do jednego zapytania w przypadku, gdy EID już istnieje.
db.col.update({"events.eid": 2}}, {$set: {"events.$.title: "Event 4", "events.$.start": new Date(2013, 08, 02}})
Jeśli zwrócona wartość wskazuje, że nie znaleziono żadnych rekordów, możesz ją wstawić.