Creo que aún necesitará hacer esto con dos consultas. Pero, usando una consulta $
para update
, puede mantenerlo en una consulta en el caso de que el EID ya exista.
db.col.update({"events.eid": 2}}, {$set: {"events.$.title: "Event 4", "events.$.start": new Date(2013, 08, 02}})
Si el valor de retorno de eso indica que no se encontraron registros, puede insertarlo en su lugar.