Javascript MongoDB:过滤文档中的多个数组,然后将重复的数组返回到一个数据中
我的数据库中有以下几组数据:Javascript MongoDB:过滤文档中的多个数组,然后将重复的数组返回到一个数据中,javascript,arrays,mongodb,sorting,aggregation-framework,Javascript,Arrays,Mongodb,Sorting,Aggregation Framework,我的数据库中有以下几组数据: [{ "id": 1, "date": "2019/11/30", "title": "Data Title", "tags": ["Javascript", "NodeJS", "Big Data", "MongoDB"], },{ "id": 2, "date": "2019/10/30", "title": "Data Title 2", "tags": ["Javascript", "React", "NodeJS", "Po
[{
"id": 1,
"date": "2019/11/30",
"title": "Data Title",
"tags": ["Javascript", "NodeJS", "Big Data", "MongoDB"],
},{
"id": 2,
"date": "2019/10/30",
"title": "Data Title 2",
"tags": ["Javascript", "React", "NodeJS", "Postgres"],
}]
目前,我希望通过返回如下值的标记对数据进行分组:
[{
"id": 1,
"tags": "Javascript",
"data": [{
"date": "2019/11/30",
"title": "Data Title",
},{
"date": "2019/10/30",
"title": "Data Title 2",
}],
"count": 2
}, {
"id": 2,
"tags": "React",
"data": [{
"date": "2019/10/30",
"title": "Data Title 2",
}],
"count": 1
}]
问题:如何使用mongodb聚合查询获取数据?非常感谢 您需要添加标记
数组并对其执行$group
聚合
db.collection.aggregate([
{ "$unwind": "$tags" },
{ "$group": {
"_id": "$tags",
"data": {
"$push": {
"title": "$title",
"date": "$date"
}
},
"count": { "$sum": 1 }
}}
])
嗨,阿什,这就是我需要的!你的答案真的很有用,供大家参考。谢谢!