Pymongo 연결하기
Pymongo 연결하기
MongoDB는 NoSQL 데이터베이스로, 데이터를 JSON과 유사한 형식으로 저장하는 비관계형 데이터베이스입니다. 이 데이터베이스는 스키마가 유연하고 확장 가능해, 다양한 웹 및 모바일 애플리케이션에서 자주 사용됩니다. 이번 글에서는 MongoDB 서버에 연결하는 방법을 자세히 설명합니다.
1. MongoDB 설치
MongoDB에 연결하려면 먼저 서버가 필요합니다. 로컬에 설치된 MongoDB 서버나 클라우드에서 제공하는 MongoDB Atlas를 사용할 수 있습니다. 여기서는 로컬 MongoDB 설치 및 MongoDB Atlas 사용법을 간단히 다루겠습니다.
1.1. 로컬 MongoDB 설치
MongoDB 다운로드 페이지에서 운영 체제에 맞는 버전을 선택하여 MongoDB를 설치합니다.
설치가 완료되면
mongod
명령어를 사용하여 MongoDB 서버를 실행합니다.mongod
이렇게 하면 로컬에서 MongoDB 서버가 실행되며, 기본적으로
mongodb://localhost:27017
로 연결됩니다.
1.2. MongoDB Atlas 사용
MongoDB Atlas는 클라우드 기반의 MongoDB 서비스로, 설정이 간편하며 클라우드 환경에서 바로 MongoDB를 사용할 수 있습니다.
MongoDB Atlas에 가입하고 프로젝트를 생성합니다. 512MB까지는 무료로 사용할 수 있는
M0
를 선택합니다.클러스터를 생성하고, 네트워크 액세스(IP 화이트리스트 설정) 및 데이터베이스 사용자 계정을 만듭니다.
MongoDB Atlas의 클러스터 연결 URL을 가져옵니다. 일반적으로 다음과 같은 형식입니다:
mongodb+srv://<username>:<password>@cluster0.mongodb.net/<dbname>?retryWrites=true&w=majority
2. MongoDB 클라이언트 설치
MongoDB 서버에 연결하기 위해 MongoDB 클라이언트를 설치해야 합니다. 일반적으로 Python을 이용한 예시를 많이 사용하므로, 여기서는 Python의 pymongo
패키지를 이용해 MongoDB에 연결하는 방법을 설명합니다.
2.1. pymongo
설치
먼저, pymongo
패키지를 설치해야 합니다. 터미널에 아래 명령어를 입력하여 설치할 수 있습니다.
pip install pymongo
pymongo
는 Python에서 MongoDB와 통신하기 위한 라이브러리입니다. 이를 통해 MongoDB 서버에 연결하고 데이터를 읽거나 쓸 수 있습니다.
3. MongoDB에 연결하기
MongoDB 서버에 연결하는 기본적인 코드는 매우 간단합니다. 로컬 MongoDB와 클라우드 MongoDB Atlas에 연결하는 방법을 모두 소개합니다.
3.1. 로컬 MongoDB에 연결
로컬 MongoDB 서버가 실행 중이라면, 기본적으로 localhost:27017
에서 연결됩니다. 아래 코드로 MongoDB에 연결할 수 있습니다.
from pymongo import MongoClient
# 로컬 MongoDB 서버에 연결
= MongoClient("mongodb://localhost:27017/")
client
# 데이터베이스 선택 (없으면 자동 생성됨)
= client.mydatabase
db
# 컬렉션 선택
= db.mycollection
collection
# 데이터 삽입 예시
= {"name": "John", "age": 30}
data
collection.insert_one(data)
print("MongoDB 연결 성공 및 데이터 삽입 완료!")
3.2. MongoDB Atlas에 연결
MongoDB Atlas의 클러스터에 연결하려면, Atlas에서 제공하는 연결 문자열을 사용해야 합니다. 아래와 같이 연결할 수 있습니다:
from pymongo import MongoClient
# MongoDB Atlas 클러스터에 연결
= MongoClient("mongodb+srv://<username>:<password>@cluster0.mongodb.net/mydatabase?retryWrites=true&w=majority")
client
# 데이터베이스 선택
= client.mydatabase
db
# 컬렉션 선택
= db.mycollection
collection
# 데이터 삽입 예시
= {"name": "Alice", "age": 25}
data
collection.insert_one(data)
print("MongoDB Atlas 연결 성공 및 데이터 삽입 완료!")
<username>
,<password>
,<dbname>
은 실제 MongoDB Atlas에서 설정한 사용자 계정 및 데이터베이스 정보로 바꿔야 합니다.- 이 코드를 실행하면 MongoDB Atlas 서버와 연결되며, 데이터를 삽입할 수 있습니다.
4. MongoDB 데이터 읽기 및 쓰기
4.1. 데이터 삽입
MongoDB에서 데이터를 삽입하는 방법은 매우 간단합니다. 위의 예시에서 insert_one()
메서드를 사용해 하나의 문서를 컬렉션에 삽입했습니다. 여러 개의 문서를 한 번에 삽입하려면 insert_many()
메서드를 사용하면 됩니다.
# 여러 문서 삽입
= [
data "name": "Bob", "age": 22},
{"name": "Charlie", "age": 28}
{
] collection.insert_many(data)
4.2. 데이터 조회
삽입된 데이터를 조회하려면 find()
메서드를 사용합니다. 이 메서드는 MongoDB에서 해당 컬렉션의 모든 문서를 가져옵니다.
# 모든 문서 조회
= collection.find()
documents
for doc in documents:
print(doc)
{'_id': ObjectId('66f6d074050b8279d9e81b5e'), 'name': 'Alice', 'age': 25}
{'_id': ObjectId('66f6d1590547992fa8b268d0'), 'name': 'Bob', 'age': 22}
{'_id': ObjectId('66f6d1590547992fa8b268d1'), 'name': 'Charlie', 'age': 28}
4.3. 데이터 필터링
특정 조건에 맞는 데이터를 가져오려면 find()
메서드에 조건을 전달할 수 있습니다.
# 조건에 맞는 문서 조회 (age가 25 이상인 사람들)
= collection.find({"age": {"$gte": 25}})
filtered_documents
for doc in filtered_documents:
print(doc)
{'_id': ObjectId('66f6d074050b8279d9e81b5e'), 'name': 'Alice', 'age': 25}
{'_id': ObjectId('66f6d1590547992fa8b268d1'), 'name': 'Charlie', 'age': 28}
5. 마무리: MongoDB 연결 해제
작업이 완료되면 연결을 해제할 수 있습니다. MongoDB 클라이언트는 Python이 종료되거나 명시적으로 close()
를 호출할 때 자동으로 연결이 해제됩니다.
client.close()print("MongoDB 연결 해제 완료!")
MongoDB 연결 해제 완료!
결론
MongoDB 서버에 연결하는 것은 매우 간단하며, 로컬 또는 클라우드 환경에서 손쉽게 설정할 수 있습니다. Python의 pymongo
라이브러리를 사용하면 MongoDB와의 통신을 빠르고 쉽게 구현할 수 있습니다.