首页 > 数据库技术 > 详细

mongoDB进行分组操作

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

一、$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进行分组操作

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!