Mongodb 计数重复值的出现次数
如何构造我的MongooseJS/MongoDB查询,以获取特定字段值的总重复项/出现次数?Aka:所有客户ID的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 我找到了这个资源: 但它要求我指定要求和的唯一字段 在本例中,我希望循环遍历所有文
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瑞士军刀,你可以做很多事情,如非常感谢!