[python] 파이썬으로 MongoDB의 데이터 그룹화하기

MongoDB는 NoSQL 데이터베이스로서 데이터의 그룹화를 통해 강력한 집계 및 분석 기능을 제공합니다. 파이썬을 사용하여 MongoDB의 데이터를 그룹화하는 방법에 대해 알아보겠습니다.

1. pymongo 라이브러리 설치

MongoDB와 상호 작용하기 위해 pymongo 라이브러리를 설치해야 합니다. 다음 명령을 사용하여 설치할 수 있습니다:

pip install pymongo

2. MongoDB에 연결하기

pymongo를 사용하여 MongoDB에 연결합니다. 다음 코드에서는 로컬 환경에서 실행 중인 MongoDB에 연결하는 방법을 보여줍니다:

from pymongo import MongoClient

# MongoDB에 연결
client = MongoClient('localhost', 27017)

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

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

3. 데이터 그룹화 쿼리 작성

MongoDB에서 데이터를 그룹화하기 위해 aggregate 함수를 사용합니다. 그룹화 작업을 위한 쿼리를 작성하여 aggregate 함수에 전달합니다.

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

위의 예제에서는 category 필드를 기준으로 데이터를 그룹화하고 각 그룹의 개수를 계산하는 작업을 수행합니다. 결과는 count 필드에 저장됩니다.

4. 데이터 그룹화 실행

앞서 작성한 쿼리를 사용하여 데이터를 그룹화합니다. aggregate 함수를 호출하고 결과를 가져옵니다.

result = collection.aggregate(pipeline)

# 결과 출력
for doc in result:
    print(doc)

위의 코드에서는 결과를 순회하면서 각 그룹의 정보를 출력합니다.

5. 전체 코드 예제

from pymongo import MongoClient

# MongoDB에 연결
client = MongoClient('localhost', 27017)

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

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

# 데이터 그룹화 쿼리 작성
pipeline = [
    {"$group": {"_id": "$category", "count": {"$sum": 1}}},
    {"$sort": {"count": -1}},
]

# 데이터 그룹화 실행
result = collection.aggregate(pipeline)

# 결과 출력
for doc in result:
    print(doc)

이제 파이썬과 MongoDB를 함께 사용하여 데이터를 그룹화하는 방법을 알게 되었습니다. 데이터 그룹화는 데이터 분석에 매우 유용하며 복잡한 쿼리 작업을 간단하게 수행할 수 있습니다.

참고 자료