Motor(비동기 드라이버)
서론
비동기 Python 애플리케이션용 공식 MongoDB 드라이버인 Motor 문서 사이트에 오신 것을 환영합니다. pip을 사용하여 다운로드하거나 튜토리얼에 따라 실행 가능한 프로젝트를 설정하세요.
팁
비차단 방식으로 또는 코루틴에서 MongoDB에 접근할 필요가 없다면 대신 PyMongo 드라이버를 사용하는 것이 좋습니다.
Motor 드라이버의 특정 사용 사례를 설명하는 블로그 게시물을 읽으려면 아래 링크를 따르세요.
설치
Python 애플리케이션에서 사용할 수 있도록 하려면 Motor 드라이버 모듈을 설치해야 합니다. pip을 사용하여 Motor를 설치하는 것이 좋습니다.
다음 명령은 명령줄을 사용하여 최신 버전 모듈을 설치하는 방법을 보여줍니다.
python -m pip install motor
요구 사항 및 기타 설치 방법에 대한 자세한 내용은 Motor 설치 문서를 참조하세요.
MongoDB Atlas에 연결
다음 연결 스니펫을 사용하여 asyncio
비동기 프레임워크를 사용한 Atlas의 MongoDB deployment에 대한 연결을 테스트할 수 있습니다.
import asyncio from motor.motor_asyncio import AsyncIOMotorClient from pymongo.server_api import ServerApi async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Set the Stable API version when creating a new client client = AsyncIOMotorClient(uri, server_api=ServerApi('1')) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) asyncio.run(ping_server())
연결 스니펫은 Stable API(Stable API) 기능을 사용합니다. 이 기능은 Motor 드라이버 v2.5 이상 사용 시 활성화할 수 있으며 MongoDB Server v5.0 이상에 연결할 때에 사용됩니다. 이 기능을 사용하면 Stable API에서 다루는 모든 명령의 하위 호환성 문제에 대한 걱정 없이 드라이버나 서버를 업데이트할 수 있습니다.
Stable API 기능에 대해 자세히 알아보려면 서버 매뉴얼에서 Stable API를 참조하세요.
참고
2022년 2월부터 버전이 지정된 API는 Stable API로 표시됩니다. 이름은 변경되나 모든 개념과 기능은 동일하게 유지됩니다.
Stable API 없이 MongoDB Atlas에 연결하기
Stable API 기능에 대한 지원이 없는 MongoDB 버전 또는 드라이버를 사용하는 경우, 다음 코드 스니펫을 사용하여 Atlas에서 MongoDB 배포에 대한 연결을 테스트할 수 있습니다.
import asyncio from motor.motor_asyncio import AsyncIOMotorClient async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Create a new client and connect to the server client = AsyncIOMotorClient(uri) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) asyncio.run(ping_server())
tornado
비동기 라이브러리를 사용하는 경우 MongoDB deployment에 연결하기 위해 다음 코드를 사용할 수 있습니다:
import tornado import motor async def ping_server(): # Replace the placeholder with your Atlas connection string uri = "<connection string>" # Set a 5-second connection timeout when creating a new client client = motor.motor_tornado.MotorClient(uri, serverSelectionTimeoutMS=5000) # Send a ping to confirm a successful connection try: await client.admin.command('ping') print("Pinged your deployment. You successfully connected to MongoDB!") except Exception as e: print(e) tornado.ioloop.IOLoop.current().run_sync(ping_server)
로컬 기계에서 MongoDB Server에 연결하기
Atlas 클러스터를 사용하는 대신 개발 목적으로 로컬 컴퓨터에서 MongoDB 서버를 실행해야 하는 경우, 다음을 완료해야 합니다:
MongoDB Server의 Community 또는 Enterprise 버전을 다운로드하세요.
MongoDB 서버를 설치하고 구성합니다.
서버를 시작합니다.
중요
악의적인 공격으로부터 항상 MongoDB 서버를 보호하세요. 보안 체크리스트에서 보안 권장 사항 목록을 확인하세요.
MongoDB Server를 성공적으로 시작한 후에는 드라이버 연결 코드에 연결 문자열을 지정하세요.
MongoDB Server가 로컬에서 실행되는 경우 연결 문자열("mongodb://localhost:<port>"
)을 사용할 수 있습니다. 여기서 <port>
는 서버가 들어오는 연결을 수신하도록 구성한 포트 번호입니다.
다른 호스트 이름 또는 IP 주소를 지정해야 하는 경우 연결 문자열에 대한 서버 매뉴얼 항목을 참조하세요.
서버에 연결할 수 있는지 테스트하려면 MongoDB Atlas에 연결 코드 예시에서 연결 문자열을 바꾸고 실행하세요.
호환성
MongoDB 호환성
다음 호환성 표는 MongoDB의 특정 버전과 함께 사용할 Motor(Python 비동기) 드라이버의 권장 버전을 명시합니다.
첫 번째 열에는 드라이버 버전이 나열됩니다.
중요
MongoDB는 서버 버전의 수명 종료(EOL) 날짜 이후 3년 동안 MongoDB Server와 드라이버 간의 호환성을 보장합니다. MongoDB 릴리스 및 EOL 날짜에 대한 자세한 내용은 MongoDB 소프트웨어 수명 주기 일정을 참조하세요.
호환성 표 범례
Icon | 설명 |
---|---|
✓ | 모든 기능이 지원됩니다. |
⊛ | 드라이버 버전은 MongoDB 버전에서 작동하지만 모든 새로운 MongoDB 기능이 지원되는 것은 아닙니다. |
표시 없음 | 드라이버 버전은 MongoDB 버전과 함께 테스트되지 않습니다. |
모터 드라이버 버전 | MongoDB 8.0 | MongoDB 7.0 | MongoDB 6.0 | MongoDB 5.0 | MongoDB 4.4 | MongoDB 4.2 | MongoDB 4.0 | MongoDB 3.6 |
---|---|---|---|---|---|---|---|---|
3.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.2 ~ 3.5 | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.1 | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
3.0 | ⊛ | ⊛ | ⊛ | ✓ | ✓ | ✓ | ✓ | ✓ |
이 드라이버는 이전 버전의 MongoDB를 지원하지 않습니다.
언어 호환성
다음 호환성 표는 Python의 특정 버전과 함께 사용할 Motor(Python 비동기) 드라이버의 권장 버전을 명시합니다.
첫 번째 열에는 드라이버 버전이 나열됩니다.
모터 드라이버 버전 | Python 3.13 | Python 3.12 | Python 3.11 | Python 3.10 | Python 3.9 | Python 3.8 | Python 3.7 |
---|---|---|---|---|---|---|---|
3.6 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
3.5 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
3.3 ~ 3.4 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |
3.1 ~ 3.2 | ✓ | ✓ | ✓ | ✓ | ✓ | ||
3.0 | ✓ | ✓ | ✓ | ✓ |
Motor 3.6 가 PyMongo 4.9을 래핑합니다.
Motor 3.5는 PyMongo 4.5를 4.8로 래핑합니다.
Motor 3.3 및 3.4는 PyMongo 4.5를 래핑합니다.
Motor 3.2는 PyMongo 4.4+를 래핑합니다.
Motor 3.1 래핑 PyMongo 4.2+
Motor 3.0 래핑 PyMongo 4.1+
참고
Asyncio 지원을 위해 Motor에는 Python 3.4 이상 또는 PyPI의 asyncio 패키지가 포함된 Python 3.3이 필요합니다.
Motor 2.3+은 Windows를 지원합니다.
호환성 표를 읽는 방법에 대한 자세한 내용은 MongoDB 호환성 표에 대한 가이드를 참조하세요.
도움 받기
MongoDB Community 포럼에서 질문하세요.
지원 채널을 방문하세요.
JIRA를 참조하여 문제를 제기하거나 기능을 요청하세요.