码迷,mamicode.com
首页 > 数据库 > 详细

mongoDB进行分组操作

时间:2018-05-18 00:28:28      阅读:419      评论:0      收藏:0      [点我收藏+]

标签:tco   job   _id   set   count   push   mongo   data   操作   

一、$group 进行分组

1、每个职位的雇员人数:

db.getCollection(‘emp‘).aggregate(

   [

     {‘$group‘:{

           ‘_id’:‘$job‘,

           job_count:{‘$sum‘:1}

    }

         }

   ]

)

2、每个职位的总工资

db.getCollection(‘emp‘).aggregate(

   [

     {‘$group‘:{

           ‘_id’:‘$job‘,

           job_salaryt:{‘$sum‘:‘$salary‘}

    }

         }

   ]

)

3、每个职位的平均工资

db.getCollection(‘emp‘).aggregate(

   [

        {‘$group‘:{

                  ‘_id’:‘$job‘,

                  job_salaryt:{‘$sum‘:‘$salary‘},

                  job_salary_avg:{‘$avg‘:‘$salary‘}

                   }

             }

   ]

)

4、每种职位的最高与最低工资

db.getCollection(‘emp‘).aggregate(

   [

        {‘$group‘:{

                  ‘_id’:‘$job‘,

                 max_salaryt:{‘$max‘:‘$salary‘},

                  min_salary:{‘$min‘:‘$salary‘}

                   }

             }

   ]

)

5、每个职位的工资

db.getCollection(‘emp‘).aggregate(

    [

       {

         ‘$group’:{

                 ‘_id‘:‘$job‘,

               ‘salary_data‘:{‘$push‘:‘$salary‘}

         }

       }

   ]

)

6、每个职位的人员

db.getCollection(‘emp‘).aggregate(

    [

       {

         ‘$group’:{

                 ‘_id‘:‘$job‘,

               ‘position_name‘:{‘$addToSet‘:‘$name‘}  //addToSet,如果有重复的人名,保留一个

         }

       }

   ]

)

二、$project 进行数据的规则显示

1、别名

db.getCollection(‘emp‘).aggregate(

[

   {‘$project‘:{

        ‘_id‘:0

       ‘职位‘:‘$job‘,

       ‘name‘:1

           }

   }

]

)

2、年薪

db.getCollection(‘emp‘).aggregate(

[

     {

           ‘$project‘:{

              ‘name‘:1,

               ‘salary‘:{‘年薪‘:{‘$multiply‘:[‘$salary‘,12]}}

            }

     }

]

)

mongoDB进行分组操作

标签:tco   job   _id   set   count   push   mongo   data   操作   

原文地址:https://www.cnblogs.com/qiyc/p/9053909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!