`
annan211
  • 浏览: 463037 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mongodb 分组统计 aggregate

阅读更多
第一步 建立文档集合

/* 1 */
{
    "_id" : ObjectId("593a6cd071be36e5191ea614"),
    "id" : "dasdyy12e1e8128asdasjd",
    "deviceId" : "saaaaaaaaaa",
    "sn" : "sasasa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a9385560d3d34b1f9ceccd5aafb58c4c",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 2 */
{
    "_id" : "593a6cd071be36e5191ea61432",
    "deviceId" : "saaa1aaaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a9385560d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 3 */
{
    "_id" : "593a6cd071be36e5191ea611432",
    "deviceId" : "saaa1aaa1aaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a9385560d3d34b11f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 4 */
{
    "_id" : "593a6cd071b1e36e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R3000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 5 */
{
    "_id" : "593a6cd071b1e236e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R2000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 6 */
{
    "_id" : "593a6cd071b1e36e51191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R2000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 7 */
{
    "_id" : "593a6cd071b1e36e5191ea161432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 8 */
{
    "_id" : "593a6cd071b1e361e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "R1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 9 */
{
    "_id" : "593a6cd0711b1e36e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "M1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}

/* 10 */
{
    "_id" : "593a6cd071b11e36e5191ea61432",
    "deviceId" : "saaa1a1aaaaaa",
    "sn" : "sas11asa",
    "deviceModel" : "M1000",
    "registTime" : "125435435213",
    "companyId" : "a93855601d3d34b1f9ceccd5aafb58c4c12",
    "companyName" : "鲁邦通",
    "faultFlag" : 1,
    "faultMsg" : "ssssssssssss",
    "faultTime" : "122222222"
}


第二步 先分组查询

db.device_statistics.aggregate([
{$group:{_id:"$deviceModel",num:{$sum:1}}}
]);


第三步 选取显示的字段列

db.device_statistics.aggregate([
{$group:{_id:"$deviceModel",num:{$sum:1}}},
{$project:{deviceModel:"$_id",num:1}}
]);


第四步 排除不需要的列
db.device_statistics.aggregate([
{$group:{_id:"$deviceModel",num:{$sum:1}}},
{$project:{_id:0,deviceModel:"$_id",num:1}}
]);

分享到:
评论

相关推荐

    mongodb group aggregate项目实战笔记

    本实战笔记旨在通过一个具体的案例,来探讨如何利用 MongoDB 的 `group` 和 `aggregate` 功能,对特定的数据集进行有效的分析和统计。 #### 二、MongoDB Group Aggregate 基础介绍 MongoDB 中的 `aggregate` 方法是...

    mongoTemplate实现统计和分组

    "MongoDB 使用 MongoTemplate 实现统计和分组" MongoDB 是一个非常流行的 NoSQL 数据库,它可以存储大量的数据,但是有时候我们需要对这些数据进行分析和利用。在本文中,我们将介绍如何使用 MongoTemplate 实现...

    mongodb分组

    三、Java开发中的MongoDB分组 在Java开发环境中,我们可以使用MongoDB Java驱动程序来执行分组查询。首先,确保引入了MongoDB的Java驱动依赖,然后创建`MongoClient`实例,连接到数据库和集合。以下是一个示例代码...

    MongDB分组统计

    总的来说,C#中的MongoDB分组统计是通过构建和执行聚合管道来完成的,这个过程涉及到对MongoDB客户端库的使用、定义过滤条件以及聚合操作,最终得到所需的数据统计结果。对于大规模的数据处理,这样的分组统计功能...

    MongoDB之聚合aggregate操作

    关于mongodb的高级操作,包括聚合、主从复制、分片、备份与恢复、MR。 一、聚合 aggregate 聚合(aggregate)主要用于... $group:将集合中的文档分组,可用于统计结果 $match:过滤数据,只输出符合条件的文档 $proj

    MongoDB aggregate 运用篇个人总结

    首先,`aggregate`方法是MongoDB用于执行聚合操作的主要工具,它允许用户进行数据的统计、分组、过滤等多种操作。在SQL中,类似的聚合操作可能通过`GROUP BY`和`COUNT`等函数实现,而在MongoDB中,`aggregate`提供了...

    MongoDB 聚合管道(Aggregation Pipeline)

    MongoDB的聚合操作可以使用命令行、驱动程序或MongoDB Shell中的aggregate()函数来执行。在聚合函数中,可以链式调用多个阶段操作符,形成一个完整的聚合管道。 值得一提的是,张善友在其博客中对MongoDB聚合管道...

    MongoDB的高级查询aggregate聚合管道1

    在MongoDB中,聚合管道通过`db.COLLECTION_NAME.aggregate([...])`方法来实现。 一、MongoDB聚合管道(Aggregation Pipeline) 聚合管道由多个阶段组成,每个阶段都会接收上一阶段处理后的结果,并对其进行进一步的...

    php代码-mongodb aggregate sample 的使用

    3. `$group`:用于对数据进行分组,可以计算分组的统计信息,如求和、平均值等。 4. `$sort`:用于对结果集进行排序。 5. `$limit`和`$skip`:用于限制返回的文档数量或跳过指定数量的文档。 在`main.php`文件中,...

    Mongodb聚合

    - 按类别分组并统计每类文章的数量: ```mongodb db.articles.aggregate([ { $group: { _id: "$category", count: { $sum: 1 } }} ]); ``` ##### 7. $sort 阶段 - **描述**:按指定字段对所有输入文档进行...

    nodejs+mongodb aggregate级联查询操作示例

    总结来说,这个示例展示了如何在Node.js中使用MongoDB的聚合框架`aggregate`进行级联查询,包括匹配、分组、排序和限制结果,以及使用EventProxy进行并发控制。这种方法在处理关联数据和复杂数据分析时非常有用,...

    浅析mongodb中group分组

    MongoDB的`group`命令是数据聚合的一种方式,主要用于对数据进行分组并进行统计分析。在MongoDB中,当你需要根据某个字段的值来汇总数据时,`group`命令非常有用。以下是对MongoDB中`group`分组功能的详细解析: 1....

    C# 操作MongoDB源码 含连接MongoDB库

    `Group`操作则用于将文档按指定键进行分组,并对每个组执行聚合操作,如计算总和、平均值等: ```csharp var groupPipeline = Builders<BsonDocument>.Aggregation.Group("_id", new BsonDocument{{"sumAge", new ...

    Mongodb java包

    - **聚合操作**:MongoDB的聚合框架允许对数据进行分析和处理,如计算平均值、分组统计等。 ```java AggregateIterable<Document> aggregate = collection.aggregate(Arrays.asList( unwind("$items"), group("$...

    php操作MongoDB使用说明

    除此之外,还有`update()`方法用于更新数据,`remove()`方法用于删除数据,`group()`方法用于分组统计,`aggregate()`方法用于聚合操作等。在实际开发中,还需要熟悉这些高级功能,以便更好地利用MongoDB的特性。 ...

    mongodb操作文档.doc

    对于聚合查询,MongoDB 提供了`aggregate()`函数,允许用户执行更复杂的数据处理,如分组、计算平均值、总和等。例如,以下是一个简单的聚合操作示例,计算用户年龄的平均值: ```javascript db.users.aggregate([ ...

    mongodb 驱动包

    7. **聚合框架**:MongoDB的聚合框架允许对数据进行复杂处理,例如计算平均值、分组统计等。在C#驱动中,这通过MongoCollection<T>.Aggregate()方法实现。 8. **索引**:可以使用MongoCollection<T>.CreateIndex()...

    MongoDB学习笔记思维导图.pdf

    MongoDB还提供了各种统计查询的方法,如count()用于统计集合中文档的数量,distinct()用于获取某个字段的所有不同值等,这些方法对于数据分析和报表生成等操作非常有用。 总而言之,MongoDB的学习涉及到大量操作...

    mongodb数据库的一些简单实用

    - 分组统计: ```javascript db.persons.aggregate([ {$group: {_id: "$country", count: {$sum: 1}}} ]) ``` 以上是关于 MongoDB 数据库的基础操作及部分高级特性的详细介绍。通过这些操作,可以更好地管理...

Global site tag (gtag.js) - Google Analytics