[python] 파이썬으로 MongoDB의 데이터 변환하기

목차

소개

MongoDB는 NoSQL 데이터베이스로서 유연하고 확장 가능한 구조를 가지고 있어 많은 사람들에게 선호되고 있습니다. 하지만 때로는 MongoDB의 데이터를 다른 형식으로 변환해야 할 수도 있습니다. 이번 블로그 포스트에서는 파이썬을 사용하여 MongoDB의 데이터를 다른 형식으로 변환하는 방법을 알아보겠습니다.

MongoDB에서 데이터 가져오기

먼저, 파이썬에서 MongoDB에 연결하는 작업이 필요합니다. 이를 위해 pymongo 라이브러리를 사용할 수 있습니다. 다음은 MongoDB에 연결하는 코드입니다.

import pymongo

client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]

위 코드에서 localhost27017은 MongoDB 서버의 호스트명과 포트 번호입니다. mydatabasemycollection은 사용자가 작업하는 실제 데이터베이스와 컬렉션의 이름에 맞게 변경해야 합니다.

데이터를 가져오기 위해 find() 메서드를 사용할 수 있습니다. 다음은 mycollection에서 모든 문서를 가져오는 코드입니다.

documents = collection.find({})
for document in documents:
    print(document)

위 코드에서 find() 메서드에 빈 딕셔너리 {}를 전달하여 모든 문서를 가져오도록 설정했습니다. 가져온 문서는 for 루프를 사용하여 출력할 수 있습니다.

데이터 변환하기

MongoDB에서 가져온 데이터를 원하는 형식으로 변환해야 할 수 있습니다. 예를 들어, JSON 형식으로 변환한다면 다음과 같이 할 수 있습니다.

import json

documents = collection.find({})
data = [json.dumps(document, default=str) for document in documents]
print(data)

위 코드에서는 json 모듈을 사용하여 default=str 파라미터를 전달하여 datetime 등의 내장된 타입을 문자열로 변환하도록 설정했습니다. 변환된 데이터는 리스트에 추가되어 출력됩니다.

변환된 데이터를 MongoDB에 저장하기

데이터를 다른 형식으로 변환한 후, 필요에 따라 변환된 데이터를 다시 MongoDB에 저장할 수도 있습니다. 이를 위해 insert_one() 또는 insert_many() 메서드를 사용할 수 있습니다.

new_collection = db["newcollection"]
result = new_collection.insert_many(data)
print(result.inserted_ids)

위 코드에서는 newcollection이라는 새로운 컬렉션을 생성하고, insert_many() 메서드에 변환된 데이터 리스트를 전달하여 데이터를 새 컬렉션에 저장합니다. inserted_ids는 새로 추가된 문서의 _id 값을 출력합니다.

결론

파이썬을 사용하여 MongoDB의 데이터를 변환하고 저장하는 방법에 대해 알아보았습니다. 이를 통해 MongoDB 데이터를 다른 형식으로 변환하고 필요에 따라 다시 MongoDB에 저장할 수 있습니다. MongoDB의 데이터 변환은 데이터 이관, 분석, 시각화 등 다양한 작업에 유용하게 사용될 수 있습니다.