使用motor向mongo写入数据

1. insert_one 写入一条数据

motor的insert_one 方法向collection中写入一条数据,insert_many 方法可以批量写入数据,它们都是异步方法,必须使用await关键字,该方法只能在协程中被调用。

import asyncio
import motor.motor_asyncio

uri = "mongodb://kwsy:123456@localhost:27017/app"
client = motor.motor_asyncio.AsyncIOMotorClient(uri)

db = client.app


async def insert_one():
    data = {'name': '小红', 'age': 14}
    result = await db.user.insert_one(data)
    print(result.inserted_id)  # 新增数据的id


loop = asyncio.get_event_loop()
loop.run_until_complete(insert_one())

result.inserted_id 是新增数据的objectid, 等同于msyql数据表的主键id。

2. insert_many ,批量写入数据

insert_many 方法支持批量写入数据

import asyncio
import motor.motor_asyncio

uri = "mongodb://kwsy:123456@localhost:27017/app"
client = motor.motor_asyncio.AsyncIOMotorClient(uri)

db = client.app


async def insert_many():
    datas = [
              {'name': '小红', 'age': 14},
              {'name': '小明', 'age': 15}
           ]
    result = await db.user.insert_many(datas)
    print(result.inserted_ids)  # 新增数据的id


loop = asyncio.get_event_loop()
loop.run_until_complete(insert_many())

扫描关注, 与我技术互动

QQ交流群: 211426309

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案