提取領域我有一個MongoDB的集合genre_count
作爲MongoDB的 - 如何與最大值
user | genre | count
-----+---------------+-------
1 | Western | 2
1 | Adventure | 1
1 | Comedy | 5
2 | Western | 3
2 | Thriller | 1
2 | Romance | 2
我需要提取的IE用戶1最大計數每個用戶的流派,以最大計數體裁是喜劇與伯爵 5.我嘗試使用幾種方法爲:
db.genre_count.aggregate([
{
$group:{
_id:{
user:"$user",
genre:"$genre"
},
max_val:{
$max: "$count"
}
}
}
])
我認爲這會工作,但它所以基本上retur返回用戶對每個流派的計數把我所有的記錄都記錄下來。
然後我嘗試另一種解決方案,它在部分工作:
db.genre_count.aggregate([
{
$group:{
_id:{
user:"$user"
},
max_val:{
$max: "$count"
}
}
}
])
但這只是返回的最大值,因爲它具有該最大值沒有相應類型的信息。有什麼辦法可以得到理想的效果嗎?
它工作,對我來說很好,但我有一個問題。無論如何,我可以提取具有相同最大計數的所有值,即如果多個流派具有相同的最大計數,它只返回一個 – scrpaingnoob
@scrpaingnoob我試圖回答你的第二個問題。在當前的答案中,假設是在排序後選擇最後一個流派(它保存最大值),並獲得所有相應的值。我也嘗試解釋這種方法。 – Rahul