【问题标题】:Grouping data with separate filter (MongoDB query)使用单独的过滤器对数据进行分组(MongoDB 查询)
【发布时间】:2021-08-03 19:08:48
【问题描述】:

我正在尝试创建一个基本上每天 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
}
}
}

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    您可以将 sum 与条件一起使用。

    Male: {$sum: {
            $cond: [
                { $eq: [ '$gender.value', 1 ] }
                1,
                0
            ]
        }
    },
    Female: {$sum: {
            $cond: [
                { $eq: ['$gender.value', 0 ] }
                1,
                0
            ]
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 2013-01-25
      • 2022-11-19
      • 1970-01-01
      • 1970-01-01
      • 2021-03-19
      • 1970-01-01
      相关资源
      最近更新 更多