第一步 建立文档集合
/* 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 中的 `aggregate` 方法是...
"MongoDB 使用 MongoTemplate 实现统计和分组" MongoDB 是一个非常流行的 NoSQL 数据库,它可以存储大量的数据,但是有时候我们需要对这些数据进行分析和利用。在本文中,我们将介绍如何使用 MongoTemplate 实现...
三、Java开发中的MongoDB分组 在Java开发环境中,我们可以使用MongoDB Java驱动程序来执行分组查询。首先,确保引入了MongoDB的Java驱动依赖,然后创建`MongoClient`实例,连接到数据库和集合。以下是一个示例代码...
总的来说,C#中的MongoDB分组统计是通过构建和执行聚合管道来完成的,这个过程涉及到对MongoDB客户端库的使用、定义过滤条件以及聚合操作,最终得到所需的数据统计结果。对于大规模的数据处理,这样的分组统计功能...
关于mongodb的高级操作,包括聚合、主从复制、分片、备份与恢复、MR。 一、聚合 aggregate 聚合(aggregate)主要用于... $group:将集合中的文档分组,可用于统计结果 $match:过滤数据,只输出符合条件的文档 $proj
首先,`aggregate`方法是MongoDB用于执行聚合操作的主要工具,它允许用户进行数据的统计、分组、过滤等多种操作。在SQL中,类似的聚合操作可能通过`GROUP BY`和`COUNT`等函数实现,而在MongoDB中,`aggregate`提供了...
MongoDB的聚合操作可以使用命令行、驱动程序或MongoDB Shell中的aggregate()函数来执行。在聚合函数中,可以链式调用多个阶段操作符,形成一个完整的聚合管道。 值得一提的是,张善友在其博客中对MongoDB聚合管道...
在MongoDB中,聚合管道通过`db.COLLECTION_NAME.aggregate([...])`方法来实现。 一、MongoDB聚合管道(Aggregation Pipeline) 聚合管道由多个阶段组成,每个阶段都会接收上一阶段处理后的结果,并对其进行进一步的...
3. `$group`:用于对数据进行分组,可以计算分组的统计信息,如求和、平均值等。 4. `$sort`:用于对结果集进行排序。 5. `$limit`和`$skip`:用于限制返回的文档数量或跳过指定数量的文档。 在`main.php`文件中,...
- 按类别分组并统计每类文章的数量: ```mongodb db.articles.aggregate([ { $group: { _id: "$category", count: { $sum: 1 } }} ]); ``` ##### 7. $sort 阶段 - **描述**:按指定字段对所有输入文档进行...
总结来说,这个示例展示了如何在Node.js中使用MongoDB的聚合框架`aggregate`进行级联查询,包括匹配、分组、排序和限制结果,以及使用EventProxy进行并发控制。这种方法在处理关联数据和复杂数据分析时非常有用,...
MongoDB的`group`命令是数据聚合的一种方式,主要用于对数据进行分组并进行统计分析。在MongoDB中,当你需要根据某个字段的值来汇总数据时,`group`命令非常有用。以下是对MongoDB中`group`分组功能的详细解析: 1....
`Group`操作则用于将文档按指定键进行分组,并对每个组执行聚合操作,如计算总和、平均值等: ```csharp var groupPipeline = Builders<BsonDocument>.Aggregation.Group("_id", new BsonDocument{{"sumAge", new ...
- **聚合操作**:MongoDB的聚合框架允许对数据进行分析和处理,如计算平均值、分组统计等。 ```java AggregateIterable<Document> aggregate = collection.aggregate(Arrays.asList( unwind("$items"), group("$...
除此之外,还有`update()`方法用于更新数据,`remove()`方法用于删除数据,`group()`方法用于分组统计,`aggregate()`方法用于聚合操作等。在实际开发中,还需要熟悉这些高级功能,以便更好地利用MongoDB的特性。 ...
对于聚合查询,MongoDB 提供了`aggregate()`函数,允许用户执行更复杂的数据处理,如分组、计算平均值、总和等。例如,以下是一个简单的聚合操作示例,计算用户年龄的平均值: ```javascript db.users.aggregate([ ...
7. **聚合框架**:MongoDB的聚合框架允许对数据进行复杂处理,例如计算平均值、分组统计等。在C#驱动中,这通过MongoCollection<T>.Aggregate()方法实现。 8. **索引**:可以使用MongoCollection<T>.CreateIndex()...
MongoDB还提供了各种统计查询的方法,如count()用于统计集合中文档的数量,distinct()用于获取某个字段的所有不同值等,这些方法对于数据分析和报表生成等操作非常有用。 总而言之,MongoDB的学习涉及到大量操作...
- 分组统计: ```javascript db.persons.aggregate([ {$group: {_id: "$country", count: {$sum: 1}}} ]) ``` 以上是关于 MongoDB 数据库的基础操作及部分高级特性的详细介绍。通过这些操作,可以更好地管理...