이번에는 파이썬을 사용하여 MongoDB와의 소켓 통신에 대해 알아보겠습니다. MongoDB는 NoSQL 데이터베이스로서, JSON 형식의 문서를 저장하고 조회할 수 있는 기능을 제공합니다. 파이썬에서는 pymongo라는 라이브러리를 통해 MongoDB와 상호작용할 수 있습니다.
MongoDB 연결하기
먼저, pymongo를 설치해야 합니다. 아래의 명령어를 사용하여 pymongo를 설치합니다.
pip install pymongo
이제 파이썬 코드에서 pymongo를 import하고 MongoDB에 연결하는 코드를 작성해보겠습니다.
import pymongo
# MongoDB 연결
client = pymongo.MongoClient('mongodb://localhost:27017/')
# 데이터베이스 선택
db = client['mydatabase']
위의 코드에서는 pymongo.MongoClient
를 통해 로컬 MongoDB에 연결하고, mydatabase
라는 이름의 데이터베이스를 선택했습니다. 연결된 client
객체와 선택된 db
객체를 통해 MongoDB와의 작업을 수행할 수 있습니다.
데이터 삽입하기
이제 MongoDB에 데이터를 삽입하는 방법을 알아보겠습니다. 아래의 코드를 사용하여 데이터를 삽입할 수 있습니다.
# 컬렉션 선택
collection = db['mycollection']
# 데이터 삽입
data = {
'name': 'John Doe',
'age': 30,
'email': 'johndoe@example.com'
}
inserted_data = collection.insert_one(data)
# 삽입된 데이터의 ID 출력
print(inserted_data.inserted_id)
위의 코드에서는 mycollection
이라는 이름의 컬렉션을 선택하고, insert_one
메서드를 사용하여 데이터를 삽입했습니다. 삽입된 데이터의 ID는 inserted_data.inserted_id
를 통해 확인할 수 있습니다.
데이터 조회하기
이번에는 MongoDB에서 데이터를 조회하는 방법을 알아보겠습니다. 아래의 코드를 사용하여 데이터를 조회할 수 있습니다.
# 데이터 조회
query = {
'age': {'$gt': 25} # 나이가 25보다 큰 데이터만 조회
}
results = collection.find(query)
# 조회된 데이터 출력
for result in results:
print(result)
위의 코드에서는 find
메서드를 사용하여 쿼리를 수행했고, 결과를 results
객체로 받았습니다. find
메서드의 인자로 전달한 쿼리는 MongoDB의 쿼리 언어를 사용하여 작성할 수 있습니다. 이 예시에서는 나이가 25보다 큰 데이터만 조회하도록 했습니다. 조회된 데이터는 for 루프를 통해 하나씩 출력됩니다.
소켓 통신하기
마지막으로, 파이썬을 사용하여 MongoDB와의 소켓 통신을 할 수 있습니다. 아래의 코드를 사용하여 소켓 통신을 설정할 수 있습니다.
# 소켓 통신 설정
socketTimeoutMS = 5000 # 5초가 지나면 연결이 끊길 경우 설정
client = pymongo.MongoClient('mongodb://localhost:27017/', socketTimeoutMS=socketTimeoutMS)
위의 코드에서는 socketTimeoutMS
를 설정하여 5초가 지나면 소켓 연결을 끊도록 했습니다. 이렇게 설정하면 MongoDB와의 소켓 통신 시간이 너무 길어지는 것을 방지할 수 있습니다.
결론
이번 포스트에서는 파이썬으로 MongoDB와의 소켓 통신에 대해 알아보았습니다. pymongo를 사용하여 MongoDB에 연결하고, 데이터를 삽입하고, 조회하는 방법에 대해 알아보았습니다. 또한, 소켓 통신 설정에 대해서도 알아보았습니다. 이제 이를 활용하여 파이썬에서 MongoDB와 더 다양한 작업을 수행할 수 있게 되었습니다.
참고문서:
- pymongo 공식 문서: https://docs.mongodb.com/drivers/pymongo/
- MongoDB 공식 사이트: https://www.mongodb.com/