美文网首页
[Mongo] 聚合,按照时间来分组

[Mongo] 聚合,按照时间来分组

作者: V_Jan | 来源:发表于2018-12-13 09:31 被阅读0次

原数据:

{ "_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") }

根据 {月,日,年} 作为key来分组,这样写的_id 有三个值。:

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 }
        }
      }
   ]
)

结果如下:


image.png

下面根据xxxx-xx-xx这样分组, _id 只有一个值:

db.sales.aggregate(
   [
      {
        $group : {
           _id : {$dateToString: {format: "%Y-%m-%d", date: "$date" }},
           totalPrice: { $sum: { $multiply: [ "$price", "$quantity" ] } },
           averageQuantity: { $avg: "$quantity" },
           count: { $sum: 1 }
        }
      }
   ]
)

结果如下:


image.png

相关文章

  • [Mongo] 聚合,按照时间来分组

    原数据: 根据 {月,日,年} 作为key来分组,这样写的_id 有三个值。: 结果如下: 下面根据xxxx-xx...

  • mongo回顾(七:聚合查询)

    上一篇简单介绍了mongo的增删改查,今天来聊聊mongo的聚合操作 什么是 MongoDB 聚合框架 Mongo...

  • Pandas - 10.4 多个分组聚合

    多个分组 多指标聚合 按照多个指标分组的情况,与单个指标分组差别不大,在获取分组时需要用元组 获取分组结果 聚合计...

  • pandas学习笔记之分组与聚合

    尝试对下述数据进行分组与聚合: 按颜色进行分组分组之后不显示出来,保存在内存中 按照price价格的最大值进行聚合聚合

  • mongo聚合

    mongo聚合

  • elasticsearch 按时间分组聚合

    elasticsearch 按时间分组聚合 按时间分组聚合 es过去一小时5分钟(Inbound,Outbound...

  • elasticsearch 聚合统计

    elasticsearch 聚合统计 创建普通聚合器 字段分组聚合 时间聚合 聚合统计并且显示统计的原始数据

  • group by与having

    group by是将表中的数据按照一个或者多个字段进行分组,分组后的结果是聚合起来的,我们只能对分组的数据进行聚合...

  • mongo聚合

    aggregate聚合 插入参数 现在我们通过以上集合计算每个作者所写的文章数,使用aggregate()计算结果...

  • pandas基础教程——Day4

    本章内容 pandas中的分组聚合 一、分组 二、聚合 示例: 拓展apply()函数

网友评论

      本文标题:[Mongo] 聚合,按照时间来分组

      本文链接:https://www.haomeiwen.com/subject/eofphqtx.html