MongoDB insert_many()函数的作用与使用方法
简介
insert_many()是MongoDB数据库操作模块pymongo中的一个函数,用于向集合中插入多条数据。
语法
insert_many(documents, ordered=True):
- documents: 一个包含多个文档的列表(列表中每个元素都是一个字典),每个文档代表一条记录。
- ordered: 是否按照列表中的顺序插入数据,默认为True,即按照顺序插入数据。如果为False,则可以将文档插入到集合中的任意位置。
示例
例1: 向集合中插入两条记录
假设我们有一个名为“students”的集合,其中包含学生信息,现在需要向该集合中插入两条记录,分别是:
{"name": "Tom", "age": 20, "gender": "male", "class": "class1"}
{"name": "Lucy", "age": 18, "gender": "female", "class": "class2"}
使用insert_many()函数可以如下操作:
from pymongo import MongoClient
# 连接MongoDB数据库
client = MongoClient()
db = client['test']
collection = db['students']
# 要插入的多个文档
students = [
{"name": "Tom", "age": 20, "gender": "male", "class": "class1"},
{"name": "Lucy", "age": 18, "gender": "female", "class": "class2"}
]
# 插入多条记录
result = collection.insert_many(students)
print(result.inserted_ids)
输出结果:
[ObjectId('6100362c26ffc1fadfdb8871'), ObjectId('6100362c26ffc1fadfdb8872')]
可以看到,插入成功后,insert_many()函数返回插入的记录的_id列表。
例2: 插入多条记录,同时保证插入顺序
在实际的开发中,我们有时需要保证插入的记录顺序要和列表中的顺序一致。这时需要将insert_many()函数的ordered参数设置为True。如下代码:
from pymongo import MongoClient
# 连接MongoDB数据库
client = MongoClient()
db = client['test']
collection = db['students']
# 要插入的多个文档
students = [
{"name": "Mike", "age": 21, "gender": "male", "class": "class2"},
{"name": "Amy", "age": 19, "gender": "female", "class": "class1"}
]
# 插入多条记录
result = collection.insert_many(students, ordered=True)
print(result.inserted_ids)
输出结果:
[ObjectId('6100362c26ffc1fadfdb8873'), ObjectId('6100362c26ffc1fadfdb8874')]
可以看到,插入成功后,insert_many()函数返回插入的记录的_id列表,并且按照list中的顺序插入了数据。
总结
insert_many()函数是MongoDB操作模块pymongo中非常常用的函数之一,可以一次性插入多条记录,极大地简化了数据库操作的步骤。在使用中,需要注意文档的格式及插入顺序。