mongodb - 计算重复值的出现次数

标签 mongodb mongoose aggregation-framework mlab

如何构造我的 MongooseJS/MongoDB 查询以获取特定字段值的总重复项/出现次数?又名:所有 custID 的 custIDsome value 的文档总数

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

db.tapwiser.find({"custID": "12345"}, {}, {}).count();

输出:1

db.tapwiser.find({"custID": "6789"}, {}, {}).count();

输出:4


我找到了这个资源:

How to sum distinct values of a field in a MongoDB collection (utilizing mongoose)

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

在这种情况下,我想遍历所有文档,对每个文档的出现次数求和。

最佳答案

您需要做的就是 $group您的文件通过 custID 并使用 $sum累加器运算符返回每个组的“计数”。

db.tapwiser.aggregate(
    [ 
        { "$group":  { "_id": "$custID", "count": { "$sum": 1 } } }
    ],  function(err, results) {
            // Do something with the results
        }
)

关于mongodb - 计算重复值的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34644655/

相关文章:

javascript - 按最高计数聚合

asp.net-mvc-3 - Log4Net 输出到 Mongo

MongoDB 指南针 : can't filter a specific ID

javascript - 在 mongoose/mongodb 中删除

javascript - 组合我的收藏中唯一的两个字段

mongodb - Mgo 聚集体 : how to reuse model types to query and unmarshal "mixed" results?

mongodb - 为什么多键索引会阻塞 MongoDB 中的 indexOnly 查询?

node.js - MongoDB 中的有条件应用和条件

javascript - 从 Mongoose 中的 Model.find() 函数返回数据

MongoDB 如何获取子文档属性等于某个值的不同子文档列表?