Mongodb 按用户列出的Mongo聚合计数

Mongodb 按用户列出的Mongo聚合计数,mongodb,aggregate,Mongodb,Aggregate,我有三张桌子 使用者 课程 类型 一个用户有多个课程,其中一个课程属于同一类型。如何返回每个用户每种类型的课程数 例: 约翰 3个A类课程 5个B类课程 ([ { $match: { project_id : ObjectId("5d9604074dc1e055a83520e9"), moderator_id : {$ne: null} }}, { $lookup

我有三张桌子

使用者 课程 类型

一个用户有多个课程,其中一个课程属于同一类型。如何返回每个用户每种类型的课程数

例:

约翰

3个A类课程

5个B类课程

([
    {
        $match: {
            project_id  : ObjectId("5d9604074dc1e055a83520e9"),
            moderator_id : {$ne: null}
        }},
    {
        $lookup:
         {
           from: "pages",
           localField: "page_id",
           foreignField: "_id",
           as: "pages"
         }
    },
    {
        $lookup:
         {
           from: "users",
           localField: "moderator_id",
           foreignField: "_id",
           as: "users"
         }
    },
    {
        "$group" : {
            _id: { 
                moderator_id: "$moderator_id",
                type: "$pages.type",
                name: "$users.name"
            },
            root : {
                $first :'$$ROOT'
            },
            count:{$sum:1},
        }
    },
    {
        $sort:{
            "count":-1
        }
    }
])

这是我的荣幸!德乌玛·奥哈达·阿基,这能回答你的问题吗?这是我的荣幸!德乌玛·奥哈达·阿基,这能回答你的问题吗?