MongoDB: subdocumento upsert
Tengo documentos que se parecen a eso, con un índice único enbars.name
:
{ name: 'foo', bars: [ { name: 'qux', somefield: 1 } ] }
. Quiero actualizar el subdocumento donde{ name: 'foo', 'bars.name': 'qux' }
y$set: { 'bars.$.somefield': 2 }
, o cree un nuevo subdocumento con{ name: 'qux', somefield: 2 }
debajo{ name: 'foo' }
.
¿Es posible hacer esto usando una sola consulta con upsert, o tendré que emitir dos preguntas separadas?
Relacionado:'upsert' en un documento incrustado (sugiere cambiar el esquema para tener el identificador de subdocumento como clave, pero esto es de hace dos años y me pregunto si ahora hay mejores soluciones).