国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > MongoDB > mongodb 如何使用group by

mongodb 如何使用group by

MongoDB

头像

 Ly

2020-06-09 10:19:169411浏览 · 0收藏 · 0评论

mongodb使用group by:

我们比较熟悉的group by 的sql语句select key from table  groupby key,而mongoDB没提供SQL那样通过Group By就轻松实现数据库的分组功能,我们通过接口来实现的

db.collection.group({ key, reduce, initial[, keyf] [, cond] [, finalize] })

1.MonogoDB数据库中添加订单的数据

/* 0 */
{
 "_id" : ObjectId("552a330e05c27486b9b9b650"),
 "_class" : "com.mongo.model.Orders",
 "onumber" : "002",
 "date" : ISODate("2014-01-03T16:03:00Z"),
 "cname" : "zcy",
 "item" : {
   "quantity" : 1,
   "price" : 4.0,
   "pnumber" : "p002"
  }
}
 
/* 1 */
{
 "_id" : ObjectId("552a331d05c275d8590a550d"),
 "_class" : "com.mongo.model.Orders",
 "onumber" : "003",
 "date" : ISODate("2014-01-04T16:03:00Z"),
 "cname" : "zcy",
 "item" : {
   "quantity" : 10,
   "price" : 2.0,
   "pnumber" : "p001"
  }
}
 
/* 2 */
{
 "_id" : ObjectId("552a333105c2f28194045a72"),
 "_class" : "com.mongo.model.Orders",
 "onumber" : "003",
 "date" : ISODate("2014-01-04T16:03:00Z"),
 "cname" : "zcy",
 "item" : {
   "quantity" : 30,
   "price" : 4.0,
   "pnumber" : "p002"
  }
}
 
/* 3 */
{
 "_id" : ObjectId("552a333f05c2b62c01cff50e"),
 "_class" : "com.mongo.model.Orders",
 "onumber" : "004",
 "date" : ISODate("2014-01-05T16:03:00Z"),
 "cname" : "zcy",
 "item" : {
   "quantity" : 5,
   "price" : 4.0,
   "pnumber" : "p002"
  }
}

2.MongoDB实现分组并统计

1)我们要对日期和产品编码进行分组,并计算相同的产品的数量

  Sql语句:

Select date, pnumber,sum(quantity) as total from orders,items group by date, pnumber

(少了两张表的关联的条件)

  MongoDB:
       db.orders.group({
          key: { date:1,'item.pnumber':1},
          initial : {"total":0},
         reduce : function Reduce(doc, out) {
        out.total+=doc.item.quantity
   } });

结果:

p1.jpg

2)实现一天卖出了多少个产品,金额是多少,平均价格是多少

  db.orders.group({
       key: {date:1},
      initial :{"total":0,"money":0},
     reduce : function Reduce(doc, out) {
     out.total+=doc.item.quantity;
          out.money+=doc.item.quantity*doc.item.price;
        },
    finalize : function Finalize(out) {
         out.avg=out.money/out.total
         returnout;
    }
  });

 结果:

p2.jpg

 3)keyf的使用

 keyf 对日期进行处理并以作为key来进来分组

 db.orders.group({
   keyf: function (doc){
   return{'month':doc.date.getMonth()+1};
 },
 initial :{"total":0,"money":0},
 reduce : function Reduce(doc, out) {
    out.total+=doc.item.quantity;
          out.money+=doc.item.quantity*doc.item.price;
        
},
 finalize : function Finalize(out) {
         out.avg=out.money/out.total
         returnout;
  }
});

结果:

p1.jpg 

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

日韩大片PPT免费PPT| 可以进入任何网站的浏览器| 少妇高潮免费观看A片| 免费观看B站刺激战场2023| 美丽的小蜜桃2:美丽人生| 每当我看到花瓣脱离花蕊慢慢枯萎..| 王子异| 摸摸大扔子的视频大全 | 扌击辶鬲小| 我要和你在一起电视剧免费观看| 黑暗的反射| 禁忌5HD| B站夫妻进入高峰期需要多久| 小俊在雪姨身上耕耘小说免费阅读 | 小妹妹爱大棒棒免费观看电视剧一| 《饥饿妻子》完整版在线观看| 《老板送醉酒丈夫回家》| mahiah| 少女与船夫1977经典版歌曲| 浪货跪下给我好好含着羞辱调教 | 车后座啪啪刚进去就软了| 完美搭档| 100%透光裸妆| 爸爸吃女儿奶奶高情商回复| 《慈母夜吟》完整版| 白丝小脚夹住命根上下摩擦的预防..| 女士穿紧身裸体开裆光滑皮裤 | 娇瘾缠欢TXT小说| 《交换做爰》在线观看| 真实双人插画的视频| 《寂寞的背叛》免费播放| 国产电影一曲二曲三曲爱妃记豆瓣| 用毛笔刷尿孔不准尿出来怎么办| 亚州久久久久久精品A片69| 69国产精华是纯还是仿| 做爰高潮A片(毛片)| 小柔与王叔的第一次相遇是第几集| 男牛把小困困放到女生困里视频| 《公与媳夫妇:交换》| 内衣走秀| 男生困困进女生困困洞视频