이번 포스팅에서는 파이썬(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의 데이터를 유연하게 조작하고 분석할 수 있습니다.