文档菜单
文档首页
/ / /
PyMongo
/

插入文档

本页内容

  • 概述
  • 示例数据
  • _id 字段
  • 插入单个文档
  • 插入多个文档
  • 修改插入行为
  • 示例
  • 更多信息
  • API文档

在本指南中,您可以学习如何通过执行插入操作使用PyMongo将文档添加到MongoDB集合中。

插入操作将一个或多个文档插入MongoDB集合中。您可以通过使用insert_one()insert_many() 方法执行插入操作。

本指南中的示例使用了来自Atlas示例数据集sample_restaurants.restaurants集合。要了解如何创建免费的MongoDB Atlas集群并加载示例数据集,请参阅PyMongo入门教程。

在MongoDB集合中,每个文档都必须包含一个具有唯一字段值的_id字段。

MongoDB允许您以两种方式管理此字段:

  • 您可以为每个文档自行设置此字段,确保每个_id字段值都是唯一的。

  • 您可以让驱动程序为每个文档的_id字段自动生成唯一的ObjectId值。如果您未手动设置文档的_id值,驱动程序将用ObjectId填充该字段。

除非您能保证唯一性,否则我们建议让驱动程序自动生成_id值。

注意

重复的_id值违反了唯一索引约束,导致驱动程序从insert_one()返回WriteError或从insert_many()返回BulkWriteError

有关_id字段的更多信息,请参阅MongoDB服务器手册中的唯一索引指南。

有关文档结构和规则的更多信息,请参阅MongoDB服务器手册中的文档指南。

要将单个文档添加到MongoDB集合中,请调用insert_one()方法并传递要添加的文档。

以下示例将文档插入到restaurants集合中:

sample_restaurants.restaurants.insert_one({"name" : "Mongo's Burgers"})

要将多个文档添加到MongoDB集合中,请调用insert_many()方法并传递要添加的文档列表。

以下示例向 restaurants 集合插入文档列表

document_list = [
{ "name" : "Mongo's Burgers" },
{ "name" : "Mongo's Pizza" }
]
sample_restaurants.restaurants.insert_many(document_list)

insert_one() 方法可以接受额外的参数,这些参数代表您可以使用它们来配置插入操作。如果您没有指定任何额外参数,驱动程序不会自定义插入操作。

属性
描述
bypass_document_validation
如果设置为 True,允许写入操作选择退出文档级别的验证
默认为 False
session
ClientSession 的实例。
comment
附加到操作的注释。有关更多信息,请参阅 MongoDB 服务器手册中的insert 命令字段指南。

insert_many() 方法接受前面提到的可选参数,以及可选的 ordered 属性

属性
描述
ordered
如果设置为 True,则驱动程序将按照提供的顺序将文档发送到服务器。如果发生错误,驱动程序和服务器将取消所有剩余的插入操作。
默认为 True

以下代码使用 insert_many() 方法向集合中插入三个新文档。因为第二个方法参数是 bypass_document_validation = True,所以此插入操作绕过了文档级别的验证。

document_list = [
{ "name" : "Mongo's Burgers" },
{ "name" : "Mongo's Pizza" },
{ "name" : "Mongo's Tacos" }
]
sample_restaurants.restaurants.insert_many(document_list, bypass_document_validation = True)

有关使用 PyMongo 插入文档的运行代码示例,请参阅 将数据写入 MongoDB。

要了解更多关于本指南中讨论的任何方法或类型的信息,请参阅以下 API 文档

返回

写入数据