728x90
728x90
파이썬(Python)으로 MongoDB 사용하기 (pymongo)
들어가며
- 파이썬(Python)으로 MongoDB를 사용하는 방법을 간단하게 정리해본다.

MongoDB
개념
- NoSQL 데이터베이스
- 유연한 스키마와 JSON과 유사한 문서 구조를 제공한다.
- 파이썬(Python)에서 MongoDB를 사용하려면
pymongo
라이브러리를 사용해야 한다.pymongo
라이브러리는 MongoDB와의 상호작용을 간단하게 해주는 파이썬 클라이언트이다.
- MongoDB에서는 데이터베이스 내에 컬렉션(Collection)이라는 단위로 데이터를 저장한다.
- 또 컬렉션 안에는 문서(Document)가 들어간다. (데이터)

설치하기
- 파이썬에서 MongoDB를 사용하기 위해서는
pymongo
라이브러리를 설치해줘야 한다.
$ pip install pymongo
MongoDB 서버 연결하기
MongoClient
를 이용하여 MongoDB 서버에 연결한다.- 기본적으로 로컬 MongoDB 서버는
localhost
와 포트27017
에서 실행된다.
from pymongo import MongoClient # MongoDB 로컬 서버에 연결 # client = MongoClient('mongodb://localhost:27017/') # MongoDB 클라우드 서버에 연결 client = MongoClient('mongodb+srv://{connect_info["id"]}:{connect_info["pw"]}@{connect_info["cluster"]}.dq234dsc.mongodb.net/{connect_info["database"]}?retryWrites=true&w=majority&appName={connect_info["appName"]}') # 특정 데이터베이스 선택 db = client['mydatabase'] # 컬렉션 선택 collection = db['mycollection']
MongoDB 클라우드 서버에 연결하기
- 아래와 같이 Overview 페이지의
[Connect]
버튼을 눌러 연결 문자열(Connection String)과 연동 예시 코드를 확인할 수 있다.
1. [Connect] 버튼 클릭 |
2. [Drivers] 클릭 |
![]() |
![]() |
3. 연결 문자열 확인 및 복사 | |
![]() |
연결 문자열(Connection String)의 구조
- 아래와 같이 아이디(
id
), 비밀번호(pw
), 데이터베이스(database
), 클러스터(cluster
), 앱이름(appName
)이 연결 문자열에 들어가게 된다.
connect_info = { "id": "myid", "pw": "mypw", "database": "mydatabase", "cluster": "cluster0", "appName": "Cluster0" } uri = f"mongodb+srv://{connect_info["id"]}:{connect_info["pw"]}@{connect_info["cluster"]}.dq234dsc.mongodb.net/{connect_info["database"]}?retryWrites=true&w=majority&appName={connect_info["appName"]}"
데이터 삽입하기 (INSERT)
- 문서(Document)라고 불리는 데이터를 컬렉션에 삽입할 수 있다.
- 문서는 JSON과 유사한 형식을 가지며, 파이썬에서는 딕셔너리(Dictionary)로 표현된다.
- 단일 문서를 넣을 때는
insert_one
메서드를, 여러 문서를 넣을 때는insert_many
메서드를 사용한다.
# 단일 문서 삽입 collection.insert_one({'name': 'Alice', 'age': 25}) # 여러 문서 삽입 documents = [ {'name': 'Bob', 'age': 30}, {'name': 'Charlie', 'age': 35} ] collection.insert_many(documents)
데이터 조회하기 (SELECT)
- 문서를 조회할 때는
find_one
과find
메서드를 사용할 수 있다.
# 단일 문서 조회 person = collection.find_one({'name': 'Alice'}) print(person) # 조건에 맞는 모든 문서 조회 for person in collection.find({'age': {'$gte': 30}}): print(person)
데이터 수정하기 (UPDATE)
- 문서를 수정하려면
update_one
이나update_many
메서드를 사용할 수 있다.
# 단일 문서 수정 collection.update_one( {'name': 'Alice'}, {'$set': {'age': 26}} ) # 여러 문서 수정 collection.update_many( {'age': {'$gte': 30}}, {'$set': {'status': 'Senior'}} )
데이터 삭제하기 (DELETE)
- 문서를 삭제하려면
delete_one
이나delete_many
메서드를 사용할 수 있다.
# 단일 문서 삭제 collection.delete_one({'name': 'Alice'}) # 여러 문서 삭제 collection.delete_many({'age': {'$lt': 30}})
인덱스 생성하기
- 컬렉션의 기능을 개선하기 위해 인덱스(Index)를 생성할 수 있다.
create_index
메서드를 사용한다.
# 인덱스 생성 collection.create_index([('name', pymongo.ASCENDING)])
데이터베이스와 컬렉션 삭제하기
# 컬렉션 삭제 db.drop_collection('mycollection') # 데이터베이스 삭제 client.drop_database('mydatabase')
참고 사이트
MongoDB 문서
공식 MongoDB 문서에 오신 것을 환영합니다. 개발자, 데이터베이스 관리자, MongoDB를 이제 막 사용하기 시작하는 사용자 모두를 위해 설명서를 통해 MongoDB 및 Atlas 개발자 데이터 플랫폼에서 애플리
www.mongodb.com
728x90
728x90