MongoDB는 널리 사용되는 문서 지향(document-oriented) 데이터베이스로, NoSQL 데이터베이스의 대표적인 형태입니다. 파이썬은 pymongo 모듈을 통해 MongoDB에 연결하고, 데이터를 생성·조작할 수 있습니다. 이 글에서는 파이썬으로 MongoDB를 다루는 기본적인 방법을 단계별로 살펴보겠습니다.
단, 파이썬이 MongoDB에 연결하려면 시스템에 MongoDB가 먼저 설치되어 있고 실행 중이어야 합니다. 아직 MongoDB를 설치하지 않았다면 먼저 MongoDB 설치 및 설정을 완료한 후 진행하세요.
pymongo 설치하기
MongoDB와 상호작용하려면 pymongo 모듈이 필요합니다. 아래 명령어를 실행해 파이썬 환경에 설치합니다.
pip install pymongo
기존 데이터베이스 목록 확인하기
pymongo를 설치했다면, 먼저 서버에 어떤 데이터베이스가 존재하는지 확인해 보겠습니다. 아래 코드는 MongoDB 서비스에 연결한 뒤, 사용 가능한 데이터베이스 이름 목록을 출력합니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
print(myclient.list_database_names())실행 결과
['Mymdb', 'admin', 'config', 'local']
기본적으로 MongoDB에는 admin, config, local 같은 시스템 데이터베이스가 존재하며, 사용자가 생성한 데이터베이스도 함께 표시됩니다.
컬렉션(Collection) 확인하기
컬렉션(collection)은 관계형 데이터베이스(RDBMS)의 테이블(table)과 유사한 개념입니다. 특정 데이터베이스 안에 어떤 컬렉션이 있는지 아래 코드로 확인할 수 있습니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mndb = myclient["Mymdb"]
print(mndb.list_collection_names())실행 결과
['newmongocoll']
문서(Document) 삽입하기
MongoDB의 문서(document)는 RDBMS의 행(row)에 해당하는 개념입니다. 아래 예제에서는 파이썬으로 MongoDB에 문서를 삽입하는 방법을 알아봅니다.
먼저 데이터베이스와 컬렉션에 연결한 뒤, 파이썬 딕셔너리(dictionary)에 담은 값을 컬렉션에 저장합니다. MongoDB는 BSON 형식으로 데이터를 저장하지만, pymongo에서는 익숙한 딕셔너리 구조를 그대로 사용할 수 있어 매우 직관적입니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mndb = myclient["Mymdb"]
mycol = mndb['newmongocoll']
mydict = { "ID": "2", "Name": "Ramana" }
x = mycol.insert_one(mydict)
print(x)실행 결과
<pymongo.results.InsertOneResult object at 0x000002CA92A920C0>
insert_one() 메서드는 InsertOneResult 객체를 반환하며, 이 객체의 inserted_id 속성을 통해 새로 삽입된 문서의 고유 ID(_id)를 확인할 수 있습니다.
문서 조회하기
pymongo가 제공하는 find() 메서드를 사용하면 컬렉션에 저장된 문서들을 조회할 수 있습니다. 조건을 인자로 전달하지 않으면 컬렉션의 모든 문서를 반환합니다.
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mndb = myclient["Mymdb"]
mycol = mndb['newmongocoll']
for x in mycol.find():
print(x)실행 결과
{'_id': ObjectId('5ef8b6f92d192421b78d32cb'), 'ID': '2', 'Name': 'Ramana'}조회 결과에는 사용자가 저장한 필드 외에 MongoDB가 자동으로 생성한 고유 식별자인 _id(ObjectId)가 함께 포함되는 것을 확인할 수 있습니다.
마무리
지금까지 pymongo를 활용해 MongoDB에 연결하고, 데이터베이스와 컬렉션을 확인하며, 문서를 삽입하고 조회하는 기본 과정을 살펴보았습니다. 여기에 더해 update_one(), delete_one(), 조건 검색 등의 기능을 익히면 파이썬으로 MongoDB를 자유롭게 다룰 수 있습니다.