文档首页 → 开发应用程序 → Python 驱动程序 → PyMongo
插入文档
概述
在本指南中,您可以学习如何通过执行插入操作来使用 PyMongo 将文档添加到 MongoDB 集合。
插入操作将一个或多个文档插入到 MongoDB 集合中。您可以通过使用insert_one()
或 insert_many()
方法来执行插入操作。
示例数据
本指南中的示例使用来自 sample_restaurants.restaurants
集合的示例数据。Atlas样本数据集。要了解如何创建免费的MongoDB Atlas集群并加载样本数据集,请参阅使用PyMongo入门教程。
_id
字段
在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()
方法可选地接受其他参数,代表您可以用来配置插入操作的可选参数。如果您不指定任何其他参数,驱动程序不会自定义插入。
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文档
要了解本指南中讨论的任何方法或类型,请参阅以下API文档