Mongodb 查找集合中至少有一个子集项的用户数

Mongodb 查找集合中至少有一个子集项的用户数,mongodb,express,mongoose,aggregation,Mongodb,Express,Mongoose,Aggregation,使用MongoDB和mongoose,我试图找出一种方法来查询出现在集合中文档子集中的用户数 例如 给定一个水果集合,其中每个水果的呈现方式如下: _id: ObjectId(...), fruit: "Apple", user: "Tom" 假设你想知道有多少用户有苹果、橘子、香蕉和梨。我要查找的输出将是一个如下所示的对象: "4": 20, "3": 35, "2": 42, "1

使用MongoDB和mongoose,我试图找出一种方法来查询出现在集合中文档子集中的用户数

例如

给定一个水果集合,其中每个水果的呈现方式如下:

_id: ObjectId(...),
fruit: "Apple",
user: "Tom"
假设你想知道有多少用户有苹果、橘子、香蕉和梨。我要查找的输出将是一个如下所示的对象:

"4": 20,
"3": 35,
"2": 42,
"1": 55,
"0": 22
我已经研究了聚合管道,但在确定这是否是正确的路径时遇到了一些困难。我的一个想法是汇总至少拥有一个x水果的唯一用户列表。每个唯一用户列表都可以进行内部联接,以消除联盟中不同时拥有这两个结果的用户

问题在于获得正确的方法,以干净地生成所需的输出。在SQL中,这将是一个更容易的解决方案,因为您可以访问联接和联合