`

4.MongoDB聚合

阅读更多

1.count 求总数

db.foo.count()

db.foo.find().length()

db.foo.find().count()

 

2.distinct 去重

查看集合foo中所有bar的值

db.runCommand({"distinct":"foo","key":"bar"})

 

3.group 分组

db.runCommand({"group":{"ns":"stocks","key":"day","initial":{"time":0},"$reduce":function(doc,prev){

    if(doc.time > prev.time){

        prev.price = doc.price;

        prev.time = doc.time;   

    }

}},"condition":{"day":{"$gt":"2010/09/30"}}})

"ns":"stocks" 指定要进行分组的集合

"key":"day" 指定文档要分组依据的键,这里是day

"initial":{"time":0} 初始化累加器的值

"$reduce":function(doc,prev){...} doc是当前文档,prev是累加器文档

"condition":{"day":{"$gt":"2010/09/30"}} 也可以是cond或者q作为键,用于filter,最简单的{"$exists":true},防止没有依据的键被分到了一组

 

(1)使用完成器 finalizer

精简从数据库传到用户的数据,在每组函数传递到客户端之前被调用一次

 

(2)将函数作为键使用

db.posts.group({"ns":"posts","$keys":function(x){return age - 10;},....})

 

4.MapReduce

1.map 映射

将操作映射到集合中每个文档 可以无作为,或产生一些键和X个值

 

2.中间过程 shuffle 洗牌

按照键分组,并将产生的键值组成列表放到对应的键中

 

3.reduce 化简

把列表中的值化简成一个单值

 

 

 

 

 

 

0
1
分享到:
评论

相关推荐

    NoSQL.Manager.for.MongoDB.v.3.1.0.5

    - 新的聚合框架:提高了聚合操作的效率,支持更复杂的数据分析。 - 查询优化器改进:自动选择最佳查询计划,提升查询速度。 - 云集成增强:对 AWS 和 Azure 等云平台的支持更加完善。 4. **关于压缩包中的文件**...

    11、MongoDB聚合操作及索引使用详解-ev.rar

    11、MongoDB聚合操作及索引使用详解_ev.rar11、MongoDB聚合操作及索引使用详解_ev.rar11、MongoDB聚合操作及索引使用详解_ev.rar11、MongoDB聚合操作及索引使用详解_ev.rar11、MongoDB聚合操作及索引使用详解_ev.rar...

    ABP.MongoDb.rar

    在实际应用中,你可能需要编写自定义仓储和工作单元实现,以便充分利用MongoDB的功能,如地理空间查询、聚合管道等。ABP的模块化设计使得扩展和定制变得简单。 总结来说,"ABP.MongoDb.rar"项目展示了如何在ABP框架...

    Apress.Pro.Hibernate.and.MongoDB.Jul.2013

    书中会讲解MongoDB的基本操作,包括安装、数据模型设计、 CRUD操作、聚合框架以及副本集和分片等高可用和水平扩展的解决方案。 在比较Hibernate和MongoDB时,书中的内容可能会讨论何时选择关系型数据库,何时选择...

    The.Definitive.Guide.to.MongoDB.pdf

    3. **高级查询技术**:介绍MongoDB的查询语言,包括聚合框架、文本搜索、地理位置查询等高级功能,帮助开发者构建复杂的查询逻辑。 4. **性能优化和调优**:提供了一系列提高MongoDB性能的策略和方法,如索引设计、...

    .MongoDB.The.Definitive.Guide

    - **更多特点**: 除了上述提到的特点外,MongoDB还具有许多其他优点,例如强大的查询语言、实时聚合框架等。 - **第2章: 入门**: - **文档**: MongoDB中数据的基本单位是文档(document),它是由键值对组成的JSON-...

    mongodb.dll 下载.zip

    4. **聚合框架**:MongoDB提供了强大的聚合框架,允许用户进行复杂的数据处理和分析,类似SQL的GROUP BY和JOIN操作。 5. **副本集**:为了实现高可用性,MongoDB可以设置副本集,其中至少有一个主节点和一个或多个...

    使用Morphia框架操作mongodb

    Morphia还提供了高级查询功能,如聚合操作、近似匹配、范围查询等。通过使用`Query`和`Update`对象,你可以构建复杂的查询和更新语句。 在实际项目中,你可能需要处理更复杂的情况,如事务支持、懒加载、索引管理等...

    Pro.MongoDB.Development.2015 (英文pdf+源码)

    4. **性能优化**:讲述了如何监控和优化MongoDB的性能,包括索引的创建和管理、查询优化、内存调优、写入优化等,以确保应用程序的高效运行。 5. **复制集与分片**:详细介绍了MongoDB的高可用性和可扩展性机制,如...

    13.mongodb.rar

    9. **聚合框架(Aggregation Framework)**:MongoDB 提供了聚合框架,用于处理数据报告和分析任务。它允许对数据进行管道式处理,类似Unix shell的管道操作,可以执行复杂的计算和转换。 10. **驱动程序(Drivers...

    MongoDB The Definitive Guide 3rd Edition.pdf

    4. MongoDB的查询语言:MongoDB使用查询语言来查询数据,查询语言包括字段选择、过滤、排序、分组和聚合等操作。 MongoDB的查询语言可以根据需要动态地创建查询条件。 5. MongoDB的索引:MongoDB支持索引,索引可以...

    MongoDB c#驱动 dll

    4. **使用类映射**:MongoDB.Driver还支持将C#类映射到MongoDB的文档,这样可以更直观地操作数据。通过BsonClassMap进行类注册,并使用强类型集合。 ```csharp [BsonDiscriminator(RootClass = true)] public class...

    mongodb-driver-3.9.1.zip_MongoDB

    MongoDB Java驱动支持多种查询方式,包括基本查询、聚合框架、地理空间查询等。例如,你可以使用`find()`方法进行基本查询: ```java MongoCollection<Document> collection = database.getCollection(...

    spring data mongodb 聚合 管道

    在Spring Data MongoDB中,聚合(Aggregation)是用于处理数据集合的一种强大工具,它允许开发者进行数据统计、分析和汇总。本篇文章将详细介绍如何利用Spring Data MongoDB API进行聚合查询,并提供一个具体的步骤...

    MongoDB聚合操作详细步骤.pdf

    MongoDB中的聚合框架是一个强大且灵活的数据处理工具,它允许用户对存储在数据库中的数据执行各种操作,从简单的数据聚合到复杂的文本处理和数组操作等。 聚合框架的主要组成部分是管道(pipeline),它由多个处理...

    mongodb-linux-x86_64-rhel70-4.2.14.tgz

    4. **聚合管道优化**:对聚合管道进行了大量优化,提高了查询速度和资源利用率。 5. **动态字段匹配**:允许在查询中使用通配符选择器,提高了查询复杂动态结构文档的能力。 6. **可写视图**:允许通过视图进行写...

Global site tag (gtag.js) - Google Analytics