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).

Respuestas a la pregunta(3)

Su respuesta a la pregunta