如何在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导致重复结果。编辑了问题。没有问题。尽管如此,如果您编辑问题以包含实际测试数据(对于
集合
),这将为您提供发布的输出,那将更好。那会把一切都说清楚的。