Mongodb 聚合以获取计数列表

Mongodb 聚合以获取计数列表,mongodb,aggregation-framework,Mongodb,Aggregation Framework,如何获取该数据所有章节代码的计数列表 [ { catId: 101, chapter: [ { id: '1234', title: 'Title 1', code: 'X12.3' }, { id: 'abcd', title

如何获取该数据所有章节代码的计数列表

[
    {
        catId: 101,
        chapter: [
            {
                id: '1234',
                title: 'Title 1',
                code: 'X12.3'
            },
            {
                id: 'abcd',
                title: 'Title 2',
                code: 'X12.4'
            }
        ]
    },
    {
        catId: 102,
        chapter: [
            {
                id: 'abcd',
                title: 'Title 2',
                code: 'X12.4'
            }
        ]
    }
]
对于这个简单的例子,我希望

2 - X12.4
1 - X12.3
我想我需要一个聚合,如:

db.collection.aggregate([
  {},
  {
    $group: {
      _id: '$code',
      Datasets: { $sum: 1 }
    }
  }
])

在分组之前,首先需要查看章节数组

db.collection.aggregate([
{
$展开:“$章节”
},
{
$group:{
_id:“$chapter.code”,
计数:{
$sum:1
}
}
}
])
这将产生以下结果:

[
  {
    "_id": "X12.4",
    "count": 2
  },
  {
    "_id": "X12.3",
    "count": 1
  }
]

非常好。从技术上讲,是否可以在同一聚合中添加来自第二个集合的一些数据?代码的含义存储在另一个集合中,因此如果第二个集合具有类似`{“code”:“X12.4”,“count”:2,“name”:“Something”}的数据,则结果可能是
{“{”id:“X12.4”,“name:“Something”}
。或者我必须进行第二次查询吗?@user3142695我想通过查找是可能的。我建议你先试着更好地学习,如果你不能解决,你可以考虑问一个新的问题。好吧,这个问题只有一个问题:我能把$$与$Matt结合起来吗?我只想得到一些特定的文档。@user3142695是的,您可以在任何地方应用匹配,