1
我想從數組中獲取總和,但到目前爲止我還沒有找到任何解決方案。Mongo sum數組索引
所以用這個陣我應該得到的13317 + 4719.總和值我嘗試使用$sum
但我當它在另一個陣列的內部時不知道如何指向2
- 在這種情況下,$median_sale_prices.2
不起作用。
我想從數組中獲取總和,但到目前爲止我還沒有找到任何解決方案。Mongo sum數組索引
所以用這個陣我應該得到的13317 + 4719.總和值我嘗試使用$sum
但我當它在另一個陣列的內部時不知道如何指向2
- 在這種情況下,$median_sale_prices.2
不起作用。
您可能需要通過使用$unwind
操作,之後就可以再使用$arrayElemAt
操作者作爲表達所述$sum
累加器操作者內求和只是在一個數組元素第一平坦化陣列字段$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