[python] 파이썬(PyMongo)을 사용한 MongoDB 집계 작업

이번 포스팅에서는 파이썬(PyMongo)을 사용하여 MongoDB 데이터베이스에서 집계 작업을 수행하는 방법을 알아보겠습니다.

MongoDB는 NoSQL 데이터베이스로서 풍부한 집계 기능을 제공합니다. 집계 작업은 데이터를 그룹화하고 필터링하거나 연산을 수행할 수 있습니다.

PyMongo 설치

먼저, PyMongo를 설치해야 합니다. 다음 명령어를 사용하여 PyMongo를 설치할 수 있습니다:

pip install pymongo

MongoDB 연결

Python에서 MongoDB와 연결하기 위해 PyMongo 라이브러리를 사용합니다. 다음 코드를 사용하여 MongoDB에 연결합니다:

from pymongo import MongoClient

# MongoDB에 연결
client = MongoClient('mongodb://localhost:27017/')

# 데이터베이스 선택
db = client['mydatabase']

집계 작업 수행

이제 MongoDB에서 집계 작업을 수행할 준비가 되었습니다. PyMongo에서는 aggregate() 메서드를 사용하여 집계 작업을 수행할 수 있습니다.

다음은 몇 가지 집계 작업의 예시입니다:

그룹화 및 합계 계산

pipeline = [
    {
        '$group': {
            '_id': '$category',
            'total_amount': {'$sum': '$amount'}
        }
    }
]

result = db['transactions'].aggregate(pipeline)

for data in result:
    print(data)

위 코드는 transactions 컬렉션에서 category 필드를 기준으로 그룹화하고, amount 필드를 합계로 계산하는 집계 작업입니다.

필터링 및 정렬

pipeline = [
    {
        '$match': {
            'category': 'Electronics',
            'amount': {'$gt': 1000}
        }
    },
    {
        '$sort': {'amount': -1}
    }
]

result = db['transactions'].aggregate(pipeline)

for data in result:
    print(data)

위 코드는 transactions 컬렉션에서 category 필드가 ‘Electronics’이고 amount 필드가 1000보다 큰 데이터를 필터링하고, amount 필드를 기준으로 내림차순으로 정렬하는 집계 작업입니다.

평균 계산

pipeline = [
    {
        '$group': {
            '_id': None,
            'average_amount': {'$avg': '$amount'}
        }
    }
]

result = db['transactions'].aggregate(pipeline)

for data in result:
    print(data)

위 코드는 transactions 컬렉션의 전체 데이터의 amount 필드의 평균을 계산하는 집계 작업입니다.

결론

이렇게 파이썬(PyMongo)을 사용하여 MongoDB 데이터베이스에서 집계 작업을 수행하는 방법을 알아보았습니다. 집계 작업을 통해 MongoDB의 데이터를 유연하게 조작하고 분석할 수 있습니다.