gpt4 book ai didi

javascript - MongoDB:过滤文档中的多个数组,然后将重复的数组返回为一个数据

转载 作者:行者123 更新时间:2023-12-01 03:03:56 24 4
gpt4 key购买 nike

我的数据库中有这些数据集:

[{
"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 聚合查询获取数据?非常感谢!

最佳答案

您需要 $unwind tags数组并执行 $group聚合就可以了。

db.collection.aggregate([
{ "$unwind": "$tags" },
{ "$group": {
"_id": "$tags",
"data": {
"$push": {
"title": "$title",
"date": "$date"
}
},
"count": { "$sum": 1 }
}}
])

关于javascript - MongoDB:过滤文档中的多个数组,然后将重复的数组返回为一个数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59354800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com