$push
wird verwendet, um einen Wert an ein Array anzuhängen. In Ihrem Beispiel measurements
ist ein Array und Mongo hängt $newData
an als erstes Element. Dies erklärt die 0
Index zwischen measurements
und levels
. In Ihrem gewünschten Ergebnis measurements
ist ein Objekt, das $newData
entspricht (d.h. es hat einen levels
-Eigenschaft, die wiederum ein Array von Objekten enthält).
Jedes der folgenden Beispiele sollte das erreichen, was Sie wollen:
// 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)
Hinweis:$push
wird flexibler sein, wenn Sie Daten bei zukünftigen Updates anhängen möchten, während $set
überschreibt natürlich das angegebene Feld.