$push
wordt gebruikt om een waarde aan een array toe te voegen. In uw voorbeeld, measurements
is een array en Mongo voegt $newData
toe als zijn eerste element. Dit verklaart de 0
index tussen measurements
en levels
. In uw gewenste resultaat, measurements
is een object gelijk aan $newData
(d.w.z. het heeft een levels
eigenschap, die op zijn beurt een array van objecten bevat).
Een van de volgende voorbeelden zou moeten bereiken wat u wilt:
// 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)
Opmerking:$push
zal flexibeler zijn als u gegevens wilt toevoegen aan toekomstige updates, terwijl $set
zal natuurlijk het gegeven veld overschrijven.