Eu tenho esse esquema: { key: [] }
. Quero convertê-lo para { key: { foo: number } }
.
Esta é a consulta que eu criei:
db.collection.update({}, [
{
"$set": {
key: { foo: 43 }
}
}
], { multi: true })
No entanto, ele atualiza o item individual da matriz em vez da matriz como um todo. Ou seja, o documento:
{ key: [1, 2] }
torna-se :
{ key: [ { foo: 43 }, { foo: 43 } ] }
em vez de:
{ key: { foo: 43 } }
.
Eu só quero me livrar completamente do array original. Posso simplesmente remover o campo e escrever a atualização. Mas existe uma maneira de fazer isso de uma só vez?
Atualização: tenho que usar o pipeline, há outras coisas acontecendo.
De acordo com este comentário :
Nesse caso, não utilize a sintaxe do pipeline para atualização. Então você só precisa remover o
[...]
entorno$set
:E se você precisar de um pipeline de atualização para outras etapas, desmarque
key
antes de definir um novo valor:Parque Mongo
Usar
$literal
Parque Mongo