MongoDB: sub-documento de upsert
Tenho documentos que se parecem com isso, com um índice exclusivo embars.name
:
{ name: 'foo', bars: [ { name: 'qux', somefield: 1 } ] }
. Eu quero atualizar o sub-documento onde{ name: 'foo', 'bars.name': 'qux' }
e$set: { 'bars.$.somefield': 2 }
ou crie um novo sub-documento com{ name: 'qux', somefield: 2 }
sob{ name: 'foo' }
.
É possível fazer isso usando uma única consulta com upsert ou terei que emitir duas consultas separadas?
Palavras-chave:'upsert' em um documento incorporado (sugere alterar o esquema para ter o identificador de sub-documento como a chave, mas isso é de dois anos atrás e eu estou me perguntando se há soluções melhores agora.)