$push
se používá k připojení hodnoty k poli. Ve vašem příkladu measurements
je pole a Mongo připojuje $newData
jako její první prvek. To vysvětluje 0
index mezi measurements
a levels
. V požadovaném výsledku measurements
je objekt ekvivalentní $newData
(tj. má levels
vlastnost, která má zase uvnitř pole objektů).
Každý z následujících příkladů by měl dosáhnout toho, co chcete:
// 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)
Poznámka:$push
bude flexibilnější, pokud chcete přidávat data s budoucími aktualizacemi, zatímco $set
přirozeně přepíše dané pole.