文档菜单

文档首页开发应用程序Python 驱动程序PyMongo

插入文档

本页内容

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

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

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

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

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

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

  • 您可以自己设置每个文档的此字段,确保每个_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服务器手册中的插入命令字段指南。

InsertMany()方法接受前面提到的可选参数,以及可选的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文档

← 将数据写入 MongoDB