$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.