如何在mongodb中基于两个集合对数据进行分组?
以下是我的两个收藏如何在mongodb中基于两个集合对数据进行分组?,mongodb,mapreduce,aggregation-framework,Mongodb,Mapreduce,Aggregation Framework,以下是我的两个收藏 users:{ _id: "", email: "test@gmail.com", department: "hr" } details:{ _id: "", email: "abc@gmail.com" some_data:[ {user_email: "test@gmail.com", ....}, {user_email: "test1@gmail.com", ....}, {user_email: "test@gmai
users:{
_id: "",
email: "test@gmail.com",
department: "hr"
}
details:{
_id: "",
email: "abc@gmail.com"
some_data:[
{user_email: "test@gmail.com", ....},
{user_email: "test1@gmail.com", ....},
{user_email: "test@gmail.com", ....},
]
}
我所需要的是一个输出,说明前三名的部门在细节的基础上的电子邮件。
例如:
If I query for email: abc@gmail.com, I must get
[
{department: "hr", count: 4},
{department: "finance", count: 3},
{department: "IT", count: 2}
]
我知道db的设计很糟糕,但我现在对此无能为力。那么如何在MongoDB中实现这一点呢
我需要
详细信息的结果。一些数据
,但根据用户
的部门
字段进行分组 你的问题不清楚。您查询的是哪一个集合?您是如何获得结果数组的?部门为hr
3次,每次4
计数?你能用正确的输入文档和正确的预期输出编辑你的问题吗?@Batshray,我很抱歉。Ctrl-c、Ctrl-v导致重复结果。编辑了问题。没有问题。尽管如此,如果您编辑问题以包含实际测试数据(对于集合
),这将为您提供发布的输出,那将更好。那会把一切都说清楚的。