개발 일반

(MongoDB) Aggregate - Count/Sum/Avg/Min/Max

danune.dev 2022. 6. 9. 15:07

 

지금까지 학습한 내용

(MongoDB) DB,Collection 생성/관리

 

(MongoDB) DB,Collection 생성/관리

1. DB 관리 1-1. DB 생성 show dbs 1-2. DB 생성 DB를 따로 생성하지 않아도 선택(use) 명령을 내리면 자동으로 생성된다 use myDB 1-3. DB 제거 use myDB db.dropDatabase() 2. Collection 관리 2-1. Collection..

blog.danune.co.kr

(MongoDB) Insert / Update / Delete

 

(MongoDB) Insert / Update / Delete

이전 학습 - 2022.06.09 - [개발 일반] - (MongoDB) DB,Collection 생성/관리 (MongoDB) DB,Collection 생성/관리 1. DB 관리 1-1. DB 생성 show dbs 1-2. DB 생성 DB를 따로 생성하지 않아도 선택(use) 명령을..

blog.danune.co.kr

(MongoDB) Find (select) 데이터 조회

 

(MongoDB) Find (select) 데이터 조회

지난시간에 학습한 내용 (MongoDB) DB,Collection 생성/관리 (MongoDB) DB,Collection 생성/관리 1. DB 관리 1-1. DB 생성 show dbs 1-2. DB 생성 DB를 따로 생성하지 않아도 선택(use) 명령을 내리면 자동으로..

blog.danune.co.kr

(MongoDB) 조회 옵션 - Sort/Limit/Skip(Offset)

 

(MongoDB) 조회 옵션 - Sort/Limit/Skip(Offset)

지난 시간 학습내용 (MongoDB) DB,Collection 생성/관리 (MongoDB) DB,Collection 생성/관리 1. DB 관리 1-1. DB 생성 show dbs 1-2. DB 생성 DB를 따로 생성하지 않아도 선택(use) 명령을 내리면 자동으로 생성..

blog.danune.co.kr

 

이번에는 Count/Sum/Avg/Min/Max 등을 활용하기 위한 aggregate 에 대해 알아보겠습니다

 

1. Count 구하기

// 전체 count
db.products.aggregate([ 
    { 
        $group: { 
            _id: null, 
            count: { $sum : 1 } 
        }  
    }
])


// 조건문 포함 count
db.products.aggregate([ 
    {
        $match: {
            "price": { $gt: 500000 }
        }
    },
    { 
        
        $group: { 
            _id: null, 
            count: { $sum : 1 } 
        }  
    }
])

// group by
db.products.aggregate([ 
    {
        $match: {
            "price": { $gt: 500000 }
        }
    },
    { 
        
        $group: { 
            _id: "${name}",
            count: { $sum : 1 } 
        }  
    }
])

2. Sum

// 전체 데이터 sum
db.products.aggregate([ 
    { 
        $group: { 
            _id: null, 
            total: { $sum : "$price" } 
        }  
    }
])

// 조건문 포함 sum
db.products.aggregate([ 
    {
        $match: {
            "price": { $gt: 300000 }
        }
    },
    { 
        $group: { 
            _id: null, 
            total: { $sum : "$price" } 
        }  
    }
])

3. Avg

db.products.aggregate([ 
    { 
        $group: { 
            _id: null, 
            average: { $avg : "$price" } 
        }  
    }
])

 

4. Min/Max

db.products.aggregate([ 
    { 
        $group: { 
            _id: null, 
            min_price: { $min : "$price" },
            max_price: { $max : "$price" } 
        }  
    }
])