mongodb - 使用单独的过滤器对数据进行分组(MongoDB 查询)
问题描述
我正在尝试创建一个查询,该查询基本上每天将 GROUP 和 COUNT 男性和女性性别。mongodb 查询将在 jaspersoft studio 中使用 mongodb 适配器执行。
我的主要问题是查询如何使用 $group 计算每天有多少男性和女性。我希望有人可以帮助我解决这个问题。先感谢您
{
runCommand: {
aggregate: "visit",
pipeline: [
{ $lookup: { from: 'person', localField: 'personuid', foreignField: '_id', as: 'person' } },
{ $unwind: { path: '$person', preserveNullAndEmptyArrays: true } },
{
$project: {
_id:{
"visit":"$id",
"visitdate":"$visitdate"
"genderuid": "$person.genderuid"
}
}
},
{ $lookup: { from: 'referencevalues', localField: '_id.genderuid', foreignField: '_id', as: 'gender' } },
{ $unwind: { path: '$gender', preserveNullAndEmptyArrays: true } },
{
$group: {
"visit_date": "$_id.visitdate"
"gender": "$gender.valuedescription",
}
}
],
"cursor":{
batchSize: 100000
}
}
}
解决方案
您可以将 sum 与条件一起使用。
Male: {$sum: {
$cond: [
{ $eq: [ '$gender.value', 1 ] }
1,
0
]
}
},
Female: {$sum: {
$cond: [
{ $eq: ['$gender.value', 0 ] }
1,
0
]
}
}
推荐阅读
- bash - Bash 脚本后终端未恢复正常
- mongodb - 如何在通过 withPipeline 功能使用 mongospark 连接器查询 mongo 时使用适当的索引?
- jquery - 如何按单元格值的子字符串排序?
- reactjs - 重新渲染无法使用 immer 更新应用程序状态
- gradle - 下载依赖项jar时,如何下载其依赖项
- python - 防止 TabbedPanel 在动画期间重绘
- sql - 特殊字符 - Sql
- android - Flutter & AndroidX 不兼容如何手动设置依赖
- apache-kafka - Windows 上的 Kafka Connect for Oracle 设置
- python - 为什么我的代码运行相同的列表,即使它甚至没有被使用?