MongoDB SELECT COUNT GROUP BY

我正在玩MongoDB试图弄清楚如何做一个简单的事情


SELECT province, COUNT(*) FROM contest GROUP BY province

但我似乎无法使用聚合函数来解决它。我可以使用一些非常奇怪的组语法来做到这一点


db.user.group({

    "key": {

        "province": true

    },

    "initial": {

        "count": 0

    },

    "reduce": function(obj, prev) {

        if (true != null) if (true instanceof Array) prev.count += true.length;

        else prev.count++;

    }

});

但是使用聚合函数有更简单/更快的方法吗?



PIPIONE
浏览 787回答 3
3回答

精慕HU

这将是使用aggregate以下方法更简单的方法:db.contest.aggregate([    {"$group" : {_id:"$province", count:{$sum:1}}}])

胡子哥哥

如果需要多个列进行分组,请遵循此模型。在这里,我通过进行计数status和type:  db.BusinessProcess.aggregate({    "$group": {        _id: {            status: "$status",            type: "$type"        },        count: {            $sum: 1        }    }   })

开满天机

我需要一些基于聚合函数结果的额外操作。最后,我找到了一些基于MongoDB结果的聚合函数和操作的解决方案。我收藏Request了一个字段request, source, status, requestDate。单场组By&Count:db.Request.aggregate([    {"$group" : {_id:"$source", count:{$sum:1}}}])多个字段分组依据和计数:db.Request.aggregate([    {"$group" : {_id:{source:"$source",status:"$status"}, count:{$sum:1}}}])多个字段分组依据和计数使用字段排序:db.Request.aggregate([    {"$group" : {_id:{source:"$source",status:"$status"}, count:{$sum:1}}},    {$sort:{"_id.source":1}}])多个字段按&计数使用排序使用计数:db.Request.aggregate([    {"$group" : {_id:{source:"$source",status:"$status"}, count:{$sum:1}}},    {$sort:{"count":-1}}])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MongoDB