728x90
mongodb에서 aggregation이란?
mysql의 subquery 같은 기능을 쓸 수 있는 기능
기본 형태
- 쿼리
db.collection_name.aggregate([
{
"$group": {
'_id':
{
"user_id": "$user_id",
"user_name": "$user_name"
}
},
{
"$project": {
"id": '$_id.user_id',
"name": '$_id.user_name',
}
}])
- 결과
[
{ "_id": {
"user_id" : 1,
"user_name": "Minho"
},
"id" : 1,
"name": "Minho"
},
{ "_id": {
"user_id" : 2,
"user_name": "Suji"
},
"id" : 2,
"name": "Suji"
}
]
- 쿼리 : _id 부분 없애기
db.collection_name.aggregate([{
{
"$group": {
'_id': {
"user_id": "$user_id",
"user_name": "$user_name",
}
}
},
{
"$project": {
"id": '$_id.user_id',
"name": '$_id.user_name',
"_id": 0
}
}])
- 결과
[
{
"id" : 1,
"name": "Minho"
},{
"id" : 2,
"name": "Suji"
}
]
$group | 그룹화 기준 attribute들 |
$project | 보여주는 attribute들 |
728x90
댓글