MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Est-il possible de définir la clé lors de l'insertion dans mongodb

$push est utilisé pour ajouter une valeur à un tableau. Dans votre exemple, measurements est un tableau et Mongo ajoute $newData comme son premier élément. Ceci explique le 0 index entre measurements et levels . Dans le résultat souhaité, measurements est un objet équivalent à $newData (c'est-à-dire qu'il a un levels propriété, qui à son tour contient un tableau d'objets).

L'un ou l'autre des exemples suivants devrait accomplir ce que vous voulez :

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

Remarque :$push va être plus flexible si vous souhaitez ajouter des données avec de futures mises à jour, alors que $set écrasera naturellement le champ donné.