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

      

                

      

     

  • 相关阅读:
    asp.net core mvc 之 DynamicApi
    打造适用于c#的feign
    asp.net App_Code文件夹相关操作
    基于Mono.Cecil的静态注入
    补充ICache
    自制简单实用IoC
    自制简单的.Net ORM框架 (一) 简介
    解决Asp.net Mvc中使用异步的时候HttpContext.Current为null的方法
    微信开发之.Net
    VS2017 网站打包发布生成的文件中包含.pdb文件,解决办法
  • 原文地址:https://www.cnblogs.com/Essaycode/p/13659003.html
Copyright © 2011-2022 走看看