$push
bruges til at tilføje en værdi til en matrix. I dit eksempel, measurements
er et array, og Mongo tilføjer $newData
som dets første element. Dette forklarer 0
indeks mellem measurements
og levels
. I dit ønskede resultat, measurements
er et objekt svarende til $newData
(dvs. den har en levels
egenskab, som igen har en række objekter indeni).
Et af de følgende eksempler bør opnå det, du ønsker:
// 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)
Bemærk:$push
vil være mere fleksibel, hvis du vil tilføje data med fremtidige opdateringer, mens $set
vil naturligvis overskrive det givne felt.