フィールドを選択して配列のメンバーである場合は、すべてを選択しています。
{ar :[{"a" : 1}, {"a" : 2}]}
"$ar.a" = [1 ,2]
また、更新演算子と集計を混在させることはできません。$sites.$.energy_consumption
などを使用することはできません。 、集計を行う場合は、$match
を除いて、集計演算子を使用する必要があります。 クエリ演算子を使用できるステージ。
クエリ
-
$setField
を使用した場合とは少し異なるソリューション - もっと速くなると思いますが、おそらくほとんど違いはありません
- JavaScriptを使用する必要はありません。遅くなります
- これは>=MongoDB 5ソリューション、
$setField
新しい演算子です
aggregate(
[{"$set":
{"sites":
{"$map":
{"input":"$sites",
"in":
{"$setField":
{"field":"new_field",
"input":"$$this",
"value":"$$this.energy_consumption"}}}}}}]
)