配列の配列から合計を取得したいと思いますが、これまでのところ解決策が見つかりませんでした。Mongo合計配列インデックス
配列は次のようになり、私はすべての配列の合計を取得したいと思い、この配列でそう[2]
値私は$sum
を使用してみました13317 + 4719.の合計値を取得する必要がありますが、私この場合、別の配列の内側にある2
のインデックスを指す方法がわかりません。$median_sale_prices.2
は機能しません。
配列の配列から合計を取得したいと思いますが、これまでのところ解決策が見つかりませんでした。Mongo合計配列インデックス
配列は次のようになり、私はすべての配列の合計を取得したいと思い、この配列でそう[2]
値私は$sum
を使用してみました13317 + 4719.の合計値を取得する必要がありますが、私この場合、別の配列の内側にある2
のインデックスを指す方法がわかりません。$median_sale_prices.2
は機能しません。
あなたがちょうど配列要素を合計するあなたは、その後$sum
アキュムレータ演算子内の式として$arrayElemAt
演算子を使用することができた後$unwind
演算子を使用して最初の配列フィールドをフラット化する必要があるかもしれません$group
パイプラインステップ。
コンセプトは最高次の例で説明することができる。
移入テストコレクション
db.test.insert([
{
"x": [
[1, 1, 1],
[0, 1, 1],
[1, 0, 1],
[1, 1, 0],
[1, 0, 1],
[0, 1, 1]
]
}
])
実行集計クエリ
db.test.aggregate([
{ "$unwind": "$x" },
{
"$group": {
"_id": null,
"total": {
"$sum": {
"$arrayElemAt": [ "$x", 2 ]
}
}
}
}
])
サンプル出力
{
"_id" : null,
"total" : 5
}
あなたのケースに上記を適用することは簡単になります。 { のparseInt($ arrayElemAt:[ "$ median_sale_prices"、1])、 のparseInt($ arrayElemAt:
もう一つは、なぜこれが可能 '' '$の乗算ではありません[ "$ median_sale_pricesは"、 2]) } '' '' –
これは有効な集計フレームワーク演算子ではないため、単純にできません。 – chridam