Motor 是一个用于在 Python 中操作 MongoDB 的异步驱动程序。它是基于 asyncio 库构建的,充分利用了异步编程的优势,使得在 Python 中进行 MongoDB 数据库操作更加高效和灵活
pip install motor
import motor.motor_asyncio
import asyncio
async def main():
client = motor.motor_asyncio.AsyncIOMotorClient('mongodb://localhost:27017')
db = client['video']['aiqiyi']
cursor = db.find()
async for result in cursor:
print(result)
await cursor.close()
client.close()
asyncio.run(main())
client = motor.motor_asyncio.AsyncIOMotorClient('mongodb://localhost:27017')
database = client.get_database('mydatabase')
database = client['mydatabase']
database_names = await client.list_database_names()
collection = database.get_collection('mycollection')
collection = client['mycollection']
collection = client['mydatabase']['mycollection']
collection_names = await db.list_collection_names()
#参数 command 是一个字典,表示要执行的命令。可以通过关键字参数传递其他选项
result = await db.command('ping')
#参数 name 是集合的名称。可以通过关键字参数传递其他选项,如 capped、size、max 等
collection = await db.create_collection('newcollection', capped=True, size=10000)
#参数 name_or_collection 可以是集合的名称或 AsyncIOMotorCollection 对象。
await db.drop_collection('mycollection') 或 await db.drop_collection(collection)
#参数 filter 是一个字典,表示过滤条件。可以通过关键字参数传递其他选项。
collection_names = await db.list_collection_names(filter={'name': {'$regex': '^my'}})
'''
collection:是一个 AsyncIOMotorCollection 对象。
keys:是一个包含要创建索引的字段和排序方式的列表。可以通过关键字参数传递其他选项,如 unique、sparse 等。
'''
await db.create_index(collection, [('name', pymongo.ASCENDING)], unique=True)
await collection.insert_one({'name': 'John', 'age': 30})
await collection.insert_many([{'name': 'John', 'age': 30}, {'name': 'Jane', 'age': 25}])
cursor = collection.find({'age': {'$gte': 30}})
async for document in cursor:
print(document)
await collection.update_one({'name': 'John'}, {'$set': {'age': 35}})
await collection.update_many({'age': {'$gte': 30}}, {'$set': {'age': 40}})
await collection.delete_one({'name': 'John'})
collection.delete_many(filter):异步删除匹配给定过滤条件的所有文档
await collection.delete_many({'age': {'$lt': 30}})
count = await collection.count_documents({'age': {'$gte': 30}})
cursor = collection.aggregate([{'$group': {'_id': '$name', 'count': {'$sum': 1}}}])
async for document in cursor:
print(document)
await collection.create_index([('name', pymongo.ASCENDING)], unique=True)
await collection.drop_index('index_name')