从PyMongo切换到PyMongo Async
重要
PyMongo异步驾驶员是实验性的,不应在生产环境中使用。在发布完整发布之前,本指南中描述的类、方法和行为可能会发生变化。如果您在使用PyMongo Async 时遇到任何问题,可以在问题和帮助页面上学习;了解如何报告这些问题。
Overview
PyMongo异步驾驶员是PyMongo和 Motor库的统一。在本指南中,您可以了解从PyMongo切换到PyMongo Async 时必须进行的更改。
从PyMongo切换
PyMongo异步驾驶员的行为与PyMongo类似,但所有执行网络操作的方法都是协程,必须等待。要从PyMongo切换到PyMongo Async,您必须通过以下方式更新代码:
将所有使用的
MongoClient
替换为AsyncMongoClient
。为所有异步方法调用添加
await
关键字。如果在函数内部调用异步方法,请将该函数标记为
async
。
以下部分介绍如何实现异步API。
异步方法
下表列出了PyMongo异步驾驶员中可用的异步方法。要调用这些方法,您必须对其进行await
操作并在async
函数内进行调用。
客户端方法
方法 | 例子 | |||
---|---|---|---|---|
AsyncMongoClient() |
| |||
watch() |
| |||
server_info() |
| |||
list_databases() |
| |||
list_database_names() |
| |||
drop_database() |
|
数据库方法
方法 | 例子 | ||
---|---|---|---|
watch() |
| ||
create_collection() |
| ||
aggregate() |
| ||
command() |
| ||
cursor_command() |
| ||
list_collections() |
| ||
list_collection_names() |
| ||
drop_collection() |
| ||
validate_collection() |
| ||
dereference() |
|
集合方法
方法 | 例子 | ||
---|---|---|---|
watch() |
| ||
insert_one() |
| ||
insert_many() |
| ||
replace_one() |
| ||
update_one() |
| ||
update_many() |
| ||
drop() |
| ||
delete_one() |
| ||
delete_many() |
| ||
find_one() |
| ||
estimated_document_count() |
| ||
count_documents() |
| ||
create_index() |
| ||
create_indexes() |
| ||
drop_index() |
| ||
drop_indexes() |
| ||
list_indexes() |
| ||
index_information() |
| ||
list_search_indexes() |
| ||
create_search_index() |
| ||
create_search_indexes() |
| ||
drop_search_index() |
| ||
update_search_index() |
| ||
options() |
| ||
aggregate() |
| ||
aggregate_raw_batches() |
| ||
rename() |
| ||
distinct() |
| ||
find_one_and_delete() |
| ||
find_one_and_replace() |
| ||
find_one_and_update() |
|
更多信息
要学习;了解有关异步Python的更多信息,请参阅 Python Asyncio 文档。