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

      

                

      

     

  • 相关阅读:
    D-Power Products
    B2
    软考知识点梳理--螺旋模型
    软考知识点梳理--敏捷方法
    软考知识点梳理--瀑布模型
    软考知识点梳理--统一软件开发过程RUP
    软考知识点梳理--信息系统生命周期
    软考知识点梳理--信息资源管理
    软考知识点梳理--以太网
    软考知识点梳理--应急储备与管理储备
  • 原文地址:https://www.cnblogs.com/Essaycode/p/13659003.html
Copyright © 2011-2022 走看看