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是的,您可以在任何地方应用匹配,