我正在和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++;
    }
});

但是有没有一种更简单/更快的方法来使用聚合函数呢?

推荐答案

这将是使用aggregate更简单的方法:

db.contest.aggregate([
    {"$group" : {_id:"$province", count:{$sum:1}}}
])

Mongodb相关问答推荐

用嵌套对象替换对象数组中的子字符串

如何在MongoSH中的现有文档中插入字段

为什么我的Mongoose更新找不到匹配?

在对象mongodb的数组中查找元素

Mongodb,在一个查询中用正则表达式更新部分字符串

DB 中的引用对象在 GraphQL 查询中返回 null

Mongoose 更新不同类型的记录

如何在 Spring-Data-MongoDB 中使用 $facet、$addFields 和 $function

有没有办法在 Prisma for MongoDB 的模式中显式声明 int32?

Mongoose 与 mongodb 如何返回刚刚保存的对象?

你如何让 mongo 在远程服务器上运行?

无法将 $match 运算符用于带有 ObjectId 的 mongodb/mongoose 聚合

`fields cannot be identical'和''` mongoimport错误

无法连接到远程 mongodb 服务器

如何使用 MongoDB 建模 likes投票系统

如何使用 angular.js 推送通知?

REACT 获取发布请求

MongoError:Topology is closed, please connect despite established database connection

当前的 URL 字符串解析器已弃用

错误:需要数据和盐参数