[python] 파이썬으로 MongoDB와의 소켓 통신

이번에는 파이썬을 사용하여 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와 더 다양한 작업을 수행할 수 있게 되었습니다.

참고문서: