我有一个集合名称 Alpha_Num,它具有以下结构。我试图找出哪个字母数字对将出现最大次数?
如果我们只使用下面的数据,对 abcd-123 出现两次,所以对 efgh-10001,但第二个对我来说不是一个有效的案例,因为它出现在同一个文档中。
{
"_id" : 12345,
"Alphabet" : "abcd",
"Numerals" : [
"123",
"456",
"2345"
]
}
{
"_id" : 123456,
"Alphabet" : "efgh",
"Numerals" : [
"10001",
"10001",
"1002"
]
}
{
"_id" : 123456567,
"Alphabet" : "abcd",
"Numerals" : [
"123"
]
}
我尝试使用聚合框架工作,如下所示
db.Alpha_Num.aggregate([
{"$unwind":"$Numerals"},
{"$group":
{"_id":{"Alpha":"$Alphabet","Num":"$Numerals"},
"count":{$sum:1}}
},
{"$sort":{"count":-1}}
])
此查询中的问题是它两次给出对 efgh-10001。问题:如何在上述条件下从数组“数字”中选择不同的值?