我正在与express和mongodb一起工作的项目中(我正在使用mongoose),并且具有以下结构的集合:
[
{
"_id": "5e4a39f01ab49e48d4db5b9c",
"last": {
"winningNumbers": {
"list": [
66,
71,
62,
50,
29,
67,
74,
43,
22,
1,
11,
3,
80,
17,
57,
53,
30,
19,
76,
40
],
"bonus": [
40
]
}
}
},
{
"_id": "5e4a3b1c1ab49e48d4db5cb8",
"last": {
"winningNumbers": {
"list": [
71,
46,
79,
60,
1,
14,
19,
73,
34,
55,
5,
65,
12,
47,
16,
62,
51,
53,
3,
45
],
"bonus": [
45
]
}
}
}
]
[我试图使用mongodb聚合框架来计算整个集合中last.winningNumber.list数组中每个数字的出现,但是我没有实现。
我想输出以下内容:
{
"occurrences": [
{number:1,count:3},
{number:2,count:8},
{number:12,count:15},
...
{number:78,count:55},
]
}
有什么方法可以使用$ group来实现,还是应该使用其他方式?
谢谢!
$ group是实现此目的的方法,但是您必须先对数组进行$ unwind。