Je pense que vous aurez encore besoin de le faire avec deux requêtes. Mais, en utilisant une requête $
pour update
, vous pouvez vous en tenir à une seule requête dans le cas où l'EID existe déjà.
db.col.update({"events.eid": 2}}, {$set: {"events.$.title: "Event 4", "events.$.start": new Date(2013, 08, 02}})
Si la valeur de retour de cela indique qu'aucun enregistrement n'a été trouvé, vous pouvez l'insérer à la place.