我想通過一個MongoDB聚合查詢來計算多個字段的不同值。使用mongodb聚合的多個字段的不同計數
因此,這裏是我的數據:
{
"car_type": "suv",
"color": "red",
"num_doors": 4
},
{
"car_type": "hatchback",
"color": "blue",
"num_doors": 4
},
{
"car_type": "wagon",
"color": "red",
"num_doors": 4
}
我想每個字段的非重複計數:
distinct_count_car_type=3
distinct_count_color=2
distinct_count_num_doors=1
我能夠將多個字段,然後做一個獨特的計數,但它只能給我指望第一場。不是所有的人。 而且它也是一大組數據。
不幸的是我使用的是mongodb 3.2和$ objectToArray,我認爲根據手冊在3.4中介紹過。 – Deckard
正確。我建議升級到3.4.4。 –
因此,我升級了並嘗試了您的解決方案。現在我遇到的問題是我想要執行的動態字段實際上在數組中,因爲它們是從另一個集合的$ lookup中查找的。由於$查找,問題頂部的集合位於我的結果數組中。所以當我嘗試在字段上執行$ objectToArray時,我得到「$ objectToArray需要文檔輸入,找到:array」。我首先嚐試了$ arrayToObject,也許能夠在它上面調用$ objectToArray,並且我得到「$ arrayToObject需要'key'和'v'的對象鍵,發現不正確的鍵數:5。 – Deckard