$ push
配列に値を追加するために使用されます。あなたの例では、measurements
は配列であり、Mongoは$newData
を追加しています その最初の要素として。これは0
を説明しています measurements
間のインデックス およびlevels
。希望する結果で、measurements
$newData
と同等のオブジェクトです (つまり、levels
があります プロパティ。これには、オブジェクトの配列が含まれています。
次の例のいずれかで、目的を達成できます。
// 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)
注:$push
$set
に対して、将来の更新でデータを追加する場合は、より柔軟になります。 指定されたフィールドを自然に上書きします。