MongoDB-按内部文档分组并检索顶级结果
我试图找到mongo数据库中存储的最常见(和最不常见)的技能。我正在使用mongoose检索结果MongoDB-按内部文档分组并检索顶级结果,mongodb,mongoose,Mongodb,Mongoose,我试图找到mongo数据库中存储的最常见(和最不常见)的技能。我正在使用mongoose检索结果 用户是根文档,每个根文档都有一个内部的配置文件文档。配置文件具有“skills”属性,其中包含一个数组ProfileSkillEntry,该数组具有标题(技能名称) 我希望它将所有注册用户的技能结合在一起,找到前5名并返回。相反,它似乎是按用户分组,并给出无效的结果 示例用户文档结构: { "_id" : ObjectId("..."), "firstName" : "Harry",
用户
是根文档,每个根文档都有一个内部的配置文件
文档。配置文件具有“skills”属性,其中包含一个数组ProfileSkillEntry
,该数组具有标题(技能名称)
我希望它将所有注册用户的技能结合在一起,找到前5名并返回。相反,它似乎是按用户分组,并给出无效的结果
示例用户
文档结构:
{
"_id" : ObjectId("..."),
"firstName" : "Harry",
"lastName" : "Potter",
"profile" : {
"_id" : ObjectId("..."),
"skills" : [
{
"_id" : ObjectId("..."),
"title" : "Java",
"description" : "Master",
"dateFrom" : "31/07/2019",
"coreSkill" : true
},
{
"_id" : ObjectId("..."),
"title" : "JavaScript",
"description" : "Proficient",
"dateFrom" : "31/07/2019",
"coreSkill" : false
}
],
}
}
请使用下面的查询。只需根据您的要求添加排序和限制
db.test.aggregate(
[{ $unwind: { path: "$profile.skills"} },
{ $group: { _id: "$profile.skills.title",
"count": { $sum: 1 }} }] )
请使用下面的查询。只需根据您的要求添加排序和限制
db.test.aggregate(
[{ $unwind: { path: "$profile.skills"} },
{ $group: { _id: "$profile.skills.title",
"count": { $sum: 1 }} }] )
请张贴您的产品样本document@Anban包括示例用户文档。请发布您的示例document@Anban包括示例用户文档。太棒了!谢谢,太棒了!非常感谢。