zoukankan      html  css  js  c++  java
  • MongoDB 的高级查询 aggregate 聚合管道

    MongoDB Aggregation 管道操作符与表达式
    $project
      
    要求查找 order 只返回文档中 trade_no 和 all_price 字段 
    db.order.aggregate([ 
        { 
            $project:{ trade_no:1, all_price:1 } 
        } 
    ])    
    

     

    $match
    用于过滤文档。用法类似于 find() 方法中的参数。
    db.order.aggregate([ 
        { 
            $project:{ trade_no:1, all_price:1 } 
        }, 
        { $match:{"all_price":{$gte:90}} } 
    ])        
    

      

    $group
    将集合中的文档进行分组,可用于统计结果。 统计每个订单的订单数量,按照订单号分组 db.order_item.aggregate( [ 
        { 
            $group: {_id: "$order_id", total: {$sum: "$num"}} 
        } 
    ])    
    

     

    $sort
    将集合中的文档进行排序。
    db.order.aggregate([ 
        { 
            $project:{ trade_no:1, all_price:1 } 
        }, 
        { 
            $match:{"all_price":{$gte:90}} 
        }, 
        { $sort:{"all_price":-1} } 
    ])    
    

      

    $limit
    db.order.aggregate([ 
        { 
            $project:{ trade_no:1, all_price:1 } 
        },
         { 
            $match:{"all_price":{$gte:90}} 
        }, 
        { 
            $sort:{"all_price":-1} 
        },
        { $limit:1 } 
    ])    
    

      

    $skip
    db.order.aggregate([ 
        { 
            $project:{ trade_no:1, all_price:1 } 
        }, 
        { 
            $match:{"all_price":{$gte:90}} 
        }, 
        { $sort:{"all_price":-1} },
        { $skip:1 } 
    ])
    

     

    $lookup 表关联
    db.order.aggregate([ 
        { 
            $lookup: 
                { 
                    from: "order_item", 
                    localField: "order_id", 
                    foreignField: "order_id", 
                    as: "items" 
                } 
        },
       { 
            $project:{ trade_no:1, all_price:1,items:1 } 
        }, 
        { 
            $match:{"all_price":    {$gte:90}} 
        }, 
        { 
            $sort:{"all_price":-1}
        },
    ])     
    

      

                

      

     

  • 相关阅读:
    ubuntu16.04安装mongodb
    redis 允许远程链接
    mongodb将一个集合的数据加入到另外一个集合
    记录一次字符的坑
    Linux定时任务指定用户
    laravel 除了根目录,所有接口地址都是404
    记录一次php7-mongodb扩展的坑
    nginx 解决跨域
    记录一次部署
    MAC或者linux通过SSH使用PEM文件登录
  • 原文地址:https://www.cnblogs.com/Essaycode/p/13659003.html
Copyright © 2011-2022 走看看