注册

详解MongoDB的insert_many()函数:向集合中插入多个文档

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中非常常用的函数之一,可以一次性插入多条记录,极大地简化了数据库操作的步骤。在使用中,需要注意文档的格式及插入顺序。