mongo聚合框架

   聚合框架可以对集合中的文档进行变换和组合。基本上,可以用多个构件创建一个管道(pipeline),用于对一连串的文档进行处理。这些构件包括筛选(filtering)、投射(projecting)、分组(grouping)、排序(sorting)和跳过(skipping)。

  • project

{"$project" : {"author" : 1}}

   通过“fieldName”:1选择需要投射(返回)的字段。通过“fieldName”:0排除不需要的字段。

db.users.aggregate({"$project":{"newFieldname": "$oldFieldname"}})

重命名字段。

  • group

{"$group" : {"_id" : "$author", "count": {"$sum" :1}}}

   按author分组,分组后每个文档组内加1,且分组后组内数量字段名为count。

  • sort

{ "$sort" : {"count" :-1}}

   对结果按count降序排列。

  • limit

{"$limit":5}

  结果集中返回前5个文档。

  • match

{"$match" : {"name": "xiaoMing"}}

   匹配名字是xiaoMing的文档。
   实际使用中,"$match"通常放在管道前面的位置,好处:一是可以快速将不需要的文档过滤掉,以减少管道的工作量;二是查询可以实用索引。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Mongo 设计应用 索引 使用ensureIndex()创建索引 简介 通常。在一个特定的集合,不应该拥有两个以...
    EarthChen阅读 429评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,128评论 19 139
  • 听过很多关于初恋的故事,很多故事都很相似,但是我依然很感动,让我感动的不是故事本身,而是总会让我想起我的初恋。 我...
    双鱼座的达妮阅读 316评论 0 4
  • 【0207今日悦读】1317-彩琼 书名:非暴力沟通 作者:马歇尔·卢森堡 篇目:是什么蒙蔽了爱? 收获: 001...
    王彩琼阅读 197评论 0 0
  • 母亲没有午休的习惯,她总是忙着忙着。在我小学的时候,父亲外出务工,她在家乡一个砖厂里上班,做好早饭后就去田里侍弄庄...
    龙泉出鞘阅读 3,463评论 2 3

友情链接更多精彩内容