猫鼬从一个集合到另一个集合获得关系的大小

时间:2020-10-28 15:24:02

标签: database mongodb mongoose

我有一个Categories收藏。还有另一个Videos集合。每个视频都属于一个类别。

我想列出所有类别以及该类别中的视频数量。 我正在使用聚合将两者结合在一起,并在类别集合中获取必填字段。从视频收藏集中,我只需要与该收藏对应的视频数量即可。

如何使用汇总来获取视频总数的大小关系?

或者我有什么想念的?

预先感谢

编辑: 关系基本上是,每个视频中都有category_id对应于类别

1 个答案:

答案 0 :(得分:0)

我得到了答案, 您可以将aggregatelookupproject一起使用以获取结果

await this.categories
            .aggregate([
                {
                    $match: filter,
                },
                {
                    $lookup: {
                        from: 'resources',
                        localField: '_id',
                        foreignField: '_category_id',
                        as: 'videos',
                    },
                },
                {
                    $project: {
                        name: '$name',
                        count: { $size: '$videos' },
                    },
                },
            ])