Mongo Aggregate

按照日期Group的例子

1. Sales表如下:

{"_id":1,"item":"abc","price":10,"quantity":2,"date":ISODate("2014-03-01T08:00:00Z")}{"_id":2,"item":"jkl","price":20,"quantity":1,"date":ISODate("2014-03-01T09:00:00Z")}{"_id":3,"item":"xyz","price":5,"quantity":10,"date":ISODate("2014-03-15T09:00:00Z")}{"_id":4,"item":"xyz","price":5,"quantity":20,"date":ISODate("2014-04-04T11:21:39.736Z")}{"_id":5,"item":"abc","price":10,"quantity":10,"date":ISODate("2014-04-04T21:23:13.331Z")}

2. 按照年月日Group

db.sales.aggregate([{$group:
       {_id:{
                month:{$month:"$date"},
                day:{$dayOfMonth:"$date"},
                year:{$year:"$date"}
        },
        totalPrice:{$sum:{$multiply:["$price","$quantity"]}},
        averageQuantity:{$avg:"$quantity"},
        count:{$sum:1}}
 }])

3. 结果如下

{"_id":{"month":3,"day":15,"year":2014},"totalPrice":50,"averageQuantity":10,"count":1}
{"_id":{"month":4,"day":4,"year":2014},"totalPrice":200,"averageQuantity":15,"count":2}
{"_id":{"month":3,"day":1,"year":2014},"totalPrice":40,"averageQuantity":1.5,"count":2}

官网图

1. MapReduce:


2. Aggregate:






最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 本文将分享15个初学者必看的基础SQL查询语句,都很基础,但是你不一定都会,所以好好看看吧。 1、创建表和数据插入...
    小码哥教育520it阅读 612评论 1 2
  • 目录 简介 在Android中存储数据有时会用到数据库,Android给我们提供了 一系列的API来操作数据库,非...
    慕涵盛华阅读 1,045评论 1 2
  • 中午开车到大耿家立交桥那里发现路灯还亮着,于是一路上在找有没有市政电话希望找到负责人把灯关掉,最后实在没找...
    毛豆妈小玥阅读 79评论 0 0
  • 简述一下声之形的剧情吧: 男主带头霸凌小聋子女主; 男主被孤立自杀未果; 女主自杀被男主所救; 男主受伤没死; 俩...
    春风吹又生出一个我阅读 502评论 0 0
  • “十年寒窗无人问,一朝成名天下知”每个人都有自己的大学梦,希望每个人都有梦想,和行动。 喝咖啡,熬夜写作业,只为期...
    李雪蓉阅读 206评论 1 0