728x90
728x90

파이썬(Python)으로 MongoDB 사용하기 (pymongo)

들어가며

  • 파이썬(Python)으로 MongoDB를 사용하는 방법을 간단하게 정리해본다.

 

MongoDB

개념

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

ⓒ GeeksforGeeks

 

설치하기

  • 파이썬에서 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_onefind 메서드를 사용할 수 있다.
# 단일 문서 조회
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

파이썬(Python)으로 MongoDB 사용하기 (pymongo)들어가며MongoDB개념설치하기MongoDB 서버 연결하기MongoDB 클라우드 서버에 연결하기연결 문자열(Connection String)의 구조데이터 삽입하기 (INSERT)데이터 조회하기 (SELECT)데이터 수정하기 (UPDATE)데이터 삭제하기 (DELETE)인덱스 생성하기데이터베이스와 컬렉션 삭제하기참고 사이트