MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

É possível definir a chave ao inserir no mongodb


$push é usado para anexar um valor a uma matriz. No seu exemplo, measurements é um array e o Mongo está anexando $newData como seu primeiro elemento. Isso explica o 0 índice entre measurements e levels . No resultado desejado, measurements é um objeto equivalente a $newData (ou seja, tem um levels propriedade, que por sua vez tem uma matriz de objetos dentro).

Qualquer um dos exemplos a seguir deve realizar o que você deseja:
// if $newData is {"levels": [{"level_qty":12,"level_uom":"ft"}]}
->set("measurements", $newData)

// if $newData is [{"level_qty":12,"level_uom":"ft"}]
->set("measurements.levels", $newData)

// if $newData is {"level_qty":12,"level_uom":"ft"}
->push("measurements.levels", $newData)

Nota:$push será mais flexível se você quiser anexar dados com atualizações futuras, enquanto $set irá sobrescrever naturalmente o campo dado.