IT/Python
[Python] MongoDB와 파이썬 연동하기
멋진 선배
2025. 1. 16. 01:06
반응형
파이썬에서 MongoDB를 연동하고 사용하는 방법에 대해서 자세하게 알아보도록 하겠습니다. MongoDB는 NoSQL 데이터베이스로, 유연하고 확장성이 뛰어나 많은 개발자들이 선호하고 있습니다.
MongoDB와 파이썬 설치하기
먼저 필요한 도구들을 설치해 볼까요?
- MongoDB 설치
- PyMong라이브러리 설치
pip install pymongo
MongoDB 연결하기
MongoDB와 파이썬을 연결하는 기본 코드 입니다.
from pymongo import MongoClient
try:
# MongoDB 연결
client = MongoClient('mongodb://localhost:27017/')
# 데이터베이스 선택
db = client['my_database']
print("MongoDB에 성공적으로 연결되었습니다!")
except Exception as e:
print(f"연결 중 오류가 발생했습니다: {e}")
컬렉션 생성 및 관리
MongoDB에서 컬렉션을 생성하고 관리하는 방법을 알아볼까요?
# 컬렉션 생성
users_collection = db['users']
# 문서 하나 삽입
user_data = {
"name": "홍길동",
"email": "hong@example.com",
"age": 25
}
result = users_collection.insert_one(user_data)
print(f"삽입된 문서의 ID: {result.inserted_id}")
데이터 조회하기
단일 문서 조회
def find_user(name):
user = users_collection.find_one({"name": name})
if user:
print(f"사용자를 찾았습니다: {user}")
else:
print("사용자를 찾을 수 없습니다.")
여려 문서 조회
def find_all_users():
users = users_collection.find()
for user in users:
print(user)
데이터 수정하기
def update_user_age(name, new_age):
result = users_collection.update_one(
{"name": name},
{"$set": {"age": new_age}}
)
if result.modified_count > 0:
print("사용자 정보가 성공적으로 수정되었습니다!")
else:
print("수정할 사용자를 찾을 수 없습니다.")
데이터 삭제하기
def delete_user(name):
result = users_collection.delete_one({"name": name})
if result.deleted_count > 0:
print("사용자가 성공적으로 삭제되었습니다!")
else:
print("삭제할 사용자를 찾을 수 없습니다.")
고급 쿼리 작성
조건 검색
def find_users_by_age_range(min_age, max_age):
query = {
"age": {
"$gte": min_age,
"$lte": max_age
}
}
users = users_collection.find(query)
for user in users:
print(user)
정렬하기
def get_users_sorted_by_age():
users = users_collection.find().sort("age", 1) # 1은 오름차순, -1은 내림차순
for user in users:
print(user)
실전 활용 팁
1. 연결하기
from contextlib import contextmanager
@contextmanager
def get_mongo_client():
client = MongoClient('mongodb://localhost:27017/')
try:
yield client
finally:
client.close()
# 사용 예시
with get_mongo_client() as client:
db = client['my_database']
users = db.users.find()
2.벌크 연산 수행하기
def bulk_insert_users(users_data):
result = users_collection.insert_many(users_data)
print(f"{len(result.inserted_ids)}개의 문서가 삽입되었습니다!")
보안 관련 팁
1. 환경 변수 사용하기
import os
from dotenv import load_dotenv
load_dotenv()
MONGO_URI = os.getenv('MONGO_URI')
client = MongoClient(MONGO_URI)
2. 인덱스 생성하기
# 이메일 필드에 유니크 인덱스 생성
users_collection.create_index("email", unique=True)
마무리
지금까지 MongoDB와 파이썬을 연동하는 방법에 대해 알아보겠습니다. MongoDB는 유연하고 확장성이 뛰어난 데이터베이스이며, 파이썬과 함께 사용하면 더욱 강력한 애플리케이션을 만들수 있습니다.
반응형