如下数据格式,我想对 fill_time 进行 group by,fill_time字段嵌套在第三层。
业务要求:如果这一条记录有多个不同的fill_time,则需分组统计多次。例如下面的数据,则统计两次,分别3月15日和3月17日各算一个,请问能不能用 aggregate 实现?
{
    "_id": "56e932f42ec56a4afc00a083",
    "binding_time": "2016-03-16 18:18:28",
    "categorys": [
        {
            "category_code": "003",
            "category_name": "颈椎疾患",
            "datas": [
                {
                    "fill_time": "2016-03-17 10:47:59",
                    "form_code": "6",
                    "plan_code": "P45",
                    "results": []
                },
                {
                    "fill_time": "2016-03-17 10:48:25",
                    "form_code": "3",
                    "plan_code": "P45",
                    "results": []
                }
            ],
            "edc_patId": "P015830",
            "start_time": "2014-4-21 13:41:42"
        },
        {
            "category_code": "004",
            "category_name": "脊柱肿瘤",
            "datas": [
                {
                    "fill_time": "2016-03-15 10:48:48",
                    "form_code": "34",
                    "plan_code": "P47",
                    "results": []
                },
                {
                    "fill_time": "2016-03-15 10:49:14",
                    "form_code": "36",
                    "plan_code": "P47",
                    "results": []
                }
            ],
            "edc_patId": "P038894",
            "start_time": "2014-4-21 13:41:42"
        }
    ],
    "patient_id": "000997785203",
    "person_name": "张三",
    "project_code": "SYGK",
    "subscribe": false
}
                    版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
aggregate([
{$unwind:"$categorys"},
{$unwind:"$categorys.datas"},
{$project:{
        'date':{$substr : ["$categorys.datas.fill_time",0,10]}
    }
},
{$group:{
        _id:'$date',
        "count":{$sum:1}
    }
}])