mongoDB進行分組操作
一、$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進行分組操作