Mongodb 计数重复值的出现次数

Mongodb 计数重复值的出现次数,mongodb,mongoose,aggregation-framework,mlab,Mongodb,Mongoose,Aggregation Framework,Mlab,如何构造我的MongooseJS/MongoDB查询,以获取特定字段值的总重复项/出现次数?Aka:所有客户ID的custID的some value的总文档 我可以在命令行中手动执行此操作: db.tapwiser.find({“custID”:“12345”},{},{}).count() 产出:1 db.tapwiser.find({“custID”:“6789”},{},{}).count() 产出:4 我找到了这个资源: 但它要求我指定要求和的唯一字段 在本例中,我希望循环遍历所有文

如何构造我的MongooseJS/MongoDB查询,以获取特定字段值的总重复项/出现次数?Aka:所有客户ID的
custID
some value
的总文档

我可以在命令行中手动执行此操作:

db.tapwiser.find({“custID”:“12345”},{},{}).count()

产出:1

db.tapwiser.find({“custID”:“6789”},{},{}).count()

产出:4


我找到了这个资源:

但它要求我指定要求和的唯一字段

在本例中,我希望循环遍历所有文档,对每个文档的出现次数求和。

您需要做的就是通过
custID
创建文档,并使用累加器操作符为每个组返回“count”

db.tapwiser.aggregate(
[ 
{“$group”:{“\u id”:“$custID”,“count”:{“$sum”:1}}
],函数(错误,结果){
//对结果做点什么
}
)

是否有办法过滤掉
count
为1的项目,从而在输出中只保留重复项?我不能完全理解聚合框架以及它能做什么和不能做什么。Hi@VioletGiraffe,要选择重复项,您需要使用
$match
阶段完成聚合管道,即您需要在
$group
阶段之后添加
{$match:{“count”:{$gte::2}}
。我认为聚合框架是MongoDB瑞士军刀,你可以做很多事情,如非常感谢!