zoukankan      html  css  js  c++  java
  • mongdb aggregate聚合操作

    1、数据准备

    查看前一篇group操作

    2、aggregate函数参数讲解

    mysql     mongdb
    ===================
    WHERE --->$match GROUP BY --->$group HAVING --->$match SELECT --->$project ORDER BY --->$sort LIMIT --->$limit SUM() --->$sum COUNT() --->$sum

    3、操作案例

    #查询每个栏目下的商品数量
    db.collection.aggregate();
    [
    {$group:{_id:"$cat_id",total:{$sum:1}}}
    ]
    
    #查询goods下有多少条商品,select count(*) from goods
    [
    {$group:{_id:null,total:{$sum:1}}}
    ]
    
    
    #查询每个栏目下 价格大于50元的商品个数
    [
    {$match:{shop_price:{$gt:50}}},
    {$group:{_id:"$cat_id",total:{$sum:1}}}
    ]
    
    
    #查询每个栏目下 价格大于50元的商品个数
    #并筛选出"满足条件的商品个数" 大于等于3的栏目 
    [
    {$match:{shop_price:{$gt:50}}},
    {$group:{_id:"$cat_id",total:{$sum:1}}},
    {$match:{total:{$gte:3}}}
    ]
    
    
    #查询每个栏目下的库存量
    [
    {$group:{_id:"$cat_id" , total:{$sum:"$goods_number"}}},
    ]
    
    
    #查询每个栏目下的库存量,并按库存量排序
    [
    {$group:{_id:"$cat_id" , total:{$sum:"$goods_number"}}},
    {$sort:{total:1}}
    ]
    
    
    #查询每个栏目下的库存量,并按库存量排序
    [
    {$group:{_id:"$cat_id" , total:{$sum:"$goods_number"}}},
    {$sort:{total:1}},
    {$limit:3}
    ]
    
    
    #查询每个栏目的商品平均价格,并按平均价格由高到低排序
    [
    {$group:{_id:"$cat_id" , avg:{$avg:"$shop_price"}}},
    {$sort:{avg:-1}}
    ]
  • 相关阅读:
    mac下安装mysql
    给一些研究生的忠告(转)
    git相关
    PC端网页rem适配方案
    使用es6,对两个数组进行对比,从而修改其中一个数组里的某些值
    uni-app自定义简单的下拉刷新
    vue监听对象里的某个属性
    vue项目文件的权限配置
    vuex的用法
    jsencrypt.js文件解压版
  • 原文地址:https://www.cnblogs.com/ywjfx/p/10226850.html
Copyright © 2011-2022 走看看