如何在 MongoDB 中进行简单计数和分组?
how to get simple count & group by in MongoDB?
假设我有一个包含两个类别的数据,例如 - 足球或篮球,其中足球值为 1,篮球值为 2,我们有以下数据:
_id game
'1' 1
'2' 1
'3' 2
'4' 1
'5' 2
(数据包含足球3次,篮球2次)。
我想执行 returns 以下对象的聚合:
{
footballCount: 3,
basketballCount: 2
}
我想不出这样的聚合会导致这样的结构。
我该怎么做?
您可以针对不同的情况进行条件求和。
db.collection.aggregate([
{
$group: {
_id: null,
footballCount: {
$sum: {
"$cond": {
"if": {
$eq: [
"$game",
1
]
},
"then": 1,
"else": 0
}
}
},
basketballCount: {
$sum: {
"$cond": {
"if": {
$eq: [
"$game",
2
]
},
"then": 1,
"else": 0
}
}
}
}
}
])
这里是Mongo playground供您参考。
假设我有一个包含两个类别的数据,例如 - 足球或篮球,其中足球值为 1,篮球值为 2,我们有以下数据:
_id game
'1' 1
'2' 1
'3' 2
'4' 1
'5' 2
(数据包含足球3次,篮球2次)。 我想执行 returns 以下对象的聚合:
{
footballCount: 3,
basketballCount: 2
}
我想不出这样的聚合会导致这样的结构。 我该怎么做?
您可以针对不同的情况进行条件求和。
db.collection.aggregate([
{
$group: {
_id: null,
footballCount: {
$sum: {
"$cond": {
"if": {
$eq: [
"$game",
1
]
},
"then": 1,
"else": 0
}
}
},
basketballCount: {
$sum: {
"$cond": {
"if": {
$eq: [
"$game",
2
]
},
"then": 1,
"else": 0
}
}
}
}
}
])
这里是Mongo playground供您参考。