コレクション名が Alpha_Num で、次の構造になっています。どのアルファベットと数字のペアが最大回数出現するかを調べようとしていますか?
以下のデータだけを使用すると、ペア abcd-123 はペア efgh-10001 のように 2 回表示されますが、2 番目のペアは同じドキュメントに表示されるため、有効なケースではありません。
{
"_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 が 2 回与えられることです。質問: 上記の条件で、配列「数値」から個別の値を選択するにはどうすればよいですか?