[python] MongoDB와의 데이터베이스 연동

MongoDB는 NoSQL 기반의 분산형 데이터베이스 시스템으로, 데이터를 JSON 형식으로 저장하고 조회할 수 있습니다. 이번 포스트에서는 Python에서 MongoDB와의 데이터베이스 연동을 어떻게 할 수 있는지 알아보겠습니다.

pymongo 라이브러리 설치

MongoDB와의 연동을 위해 Python에서는 pymongo 라이브러리를 사용합니다. pymongo는 MongoDB에 접속하고 데이터를 CRUD(Create, Read, Update, Delete) 작업을 수행하기 위한 다양한 기능을 제공합니다. pymongo를 설치하기 위해 다음 명령어를 실행합니다.

pip install pymongo

MongoDB 연결하기

먼저, Python에서 MongoDB에 접속하기 위해 pymongo를 임포트합니다.

import pymongo

다음으로, MongoDB 서버에 연결하기 위해 pymongo.MongoClient()를 사용합니다. 이때, MongoDB 서버의 주소와 포트 번호를 지정해야 합니다. 만약 로컬에서 실행 중인 MongoDB를 사용한다면 다음과 같이 localhost와 기본 포트 번호인 27017을 사용할 수 있습니다.

client = pymongo.MongoClient("mongodb://localhost:27017/")

데이터베이스와 컬렉션 생성하기

MongoDB는 데이터를 데이터베이스(database)와 컬렉션(collection)으로 구성합니다. 데이터베이스는 여러 개의 컬렉션을 담는 컨테이너이고, 컬렉션은 문서(document)들의 그룹입니다.

데이터베이스와 컬렉션을 생성하려면 client 객체에서 mydbmycollection을 각각 생성하면 됩니다.

db = client["mydb"]
collection = db["mycollection"]

문서 삽입하기

MongoDB에서 문서를 삽입하기 위해서는 collection.insert_one() 또는 collection.insert_many() 메소드를 사용합니다.

document = {"name": "John", "age": 30, "city": "New York"}
result = collection.insert_one(document)

문서 조회하기

조회는 collection.find() 메소드를 사용하여 수행할 수 있습니다. find() 메소드는 쿼리를 인자로 받아 매칭되는 문서들을 반환합니다.

documents = collection.find({"city": "New York"})
for document in documents:
    print(document)

문서 업데이트하기

문서를 업데이트하기 위해 collection.update_one() 또는 collection.update_many() 메소드를 사용합니다.

collection.update_one({"name": "John"}, {"$set": {"age": 35}})

문서 삭제하기

특정 조건을 만족하는 문서를 삭제하기 위해 collection.delete_one() 또는 collection.delete_many() 메소드를 사용합니다.

collection.delete_one({"name": "John"})

결론

이번 포스트에서는 Python에서 MongoDB와의 데이터베이스 연동을 어떻게 할 수 있는지 알아보았습니다. pymongo 라이브러리를 사용하여 MongoDB에 접속하고 데이터를 CRUD 작업을 수행할 수 있습니다. 아래의 참고 자료를 통해 pymongo에 대해 더 자세히 알아보세요.

참고 자료