[python] 파이썬으로 MongoDB의 데이터 집계하기

이번 포스트에서는 파이썬을 사용하여 MongoDB의 데이터를 집계하는 방법에 대해 알아보겠습니다.

1. MongoDB와 pymongo 라이브러리 설치

먼저, 파이썬에서 MongoDB를 사용하기 위해 MongoDB와 pymongo 라이브러리를 설치해야 합니다. 아래 명령을 사용하여 설치하십시오.

pip install pymongo

2. MongoDB 연결

이제 파이썬 프로그램에서 MongoDB와 연결해보겠습니다. pymongo 라이브러리를 사용하여 아래와 같이 연결할 수 있습니다.

from pymongo import MongoClient

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

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

# 컬렉션 선택
collection = db["mycollection"]

위 코드를 실행하면 로컬 MongoDB에 연결된 상태로 데이터베이스와 컬렉션을 선택할 수 있습니다.

3. 데이터 집계 실행

이제 MongoDB의 데이터를 집계해보겠습니다. pymongo 라이브러리의 aggregate() 메서드를 사용하여 데이터를 집계할 수 있습니다. 아래는 간단한 집계 예제입니다.

pipeline = [
    {"$group": {"_id": "$category", "count": {"$sum": "$quantity"}}},
    {"$sort": {"count": -1}},
    {"$limit": 5}
]

result = collection.aggregate(pipeline)

for item in result:
    print(item)

위 예제는 “category” 필드로 그룹화한 후 “quantity” 필드의 합계를 구하고, 이를 “count” 필드로 출력합니다. 그리고 “count” 필드를 기준으로 내림차순으로 정렬하고, 상위 5개 결과만 출력합니다.

4. 결과 확인

위 코드를 실행하면 데이터 집계 결과가 출력됩니다. 각 항목은 “_id”, “count” 필드로 구성되어 있습니다. 그룹화된 데이터의 합계가 출력됩니다.

{'_id': 'electronics', 'count': 165}
{'_id': 'clothing', 'count': 120}
{'_id': 'books', 'count': 85}
{'_id': 'beauty', 'count': 68}
{'_id': 'home', 'count': 55}

이상으로 파이썬을 사용하여 MongoDB의 데이터를 집계하는 방법에 대해 알아보았습니다. pymongo 라이브러리를 활용하여 다양한 집계 작업을 수행할 수 있습니다.