提取领域我有一个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