📜  MongoDB插入文档(1)

📅  最后修改于: 2023-12-03 15:32:57.435000             🧑  作者: Mango

MongoDB插入文档

在MongoDB中,插入文档是向集合中添加一个新文档的过程。在这个过程中,开发人员可以选择手动指定文档的_id属性,或使用自动生成的ObjectId属性。本文将介绍MongoDB插入文档的方法。

1. 手动指定_id属性

可以通过给文档对象添加_id属性来手动指定文档的_id。代码示例如下:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

mydict = { "_id": "1", "name": "John", "address": "Highway 37" }

x = mycol.insert_one(mydict)

print(x.inserted_id)

在代码中,我们通过insert_one()方法向customers集合中插入一个文档。同时,我们手动指定了文档的_id属性为"1"。当我们运行程序时,输出的结果为:

1

这说明我们成功地向集合中插入了一条文档,并且文档的_id属性为"1"。

2. 自动生成ObjectId属性

如果我们不手动指定文档的_id属性,则MongoDB会自动生成一个ObjectId属性作为文档的_id。代码示例如下:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

mydict = { "name": "Peter", "address": "Lowstreet 27" }

x = mycol.insert_one(mydict)

print(x.inserted_id)

在代码中,我们没有指定文档的_id属性,因此MongoDB会自动生成一个ObjectId作为文档的_id。当我们运行程序时,输出的结果为:

609e7e7639a22ce57ee84411

这说明我们成功地向集合中插入了一条文档,并且文档的_id属性为自动生成的ObjectId。

3. 插入多个文档

除了向集合中插入单个文档外,我们还可以一次性向集合中插入多个文档。代码示例如下:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]

mylist = [
  { "name": "Amy", "address": "Apple st 652" },
  { "name": "Hannah", "address": "Mountain 21" },
  { "name": "Michael", "address": "Valley 345" },
  { "name": "Sandy", "address": "Ocean blvd 2" },
  { "name": "Betty", "address": "Green Grass 1" },
  { "name": "Richard", "address": "Sky st 331" },
  { "name": "Susan", "address": "One way 98" },
  { "name": "Vicky", "address": "Yellow Garden 2" },
  { "name": "Ben", "address": "Park Lane 38" },
  { "name": "William", "address": "Central st 954" },
  { "name": "Chuck", "address": "Main Road 989" },
  { "name": "Viola", "address": "Sideway 1633" }
]

x = mycol.insert_many(mylist)

print(x.inserted_ids)

在代码中,我们使用insert_many()方法向集合中插入多个文档。当我们运行程序时,输出的结果为:

[ObjectId('609e7f1039a22ce57ee84412'), ObjectId('609e7f1039a22ce57ee84413'), ObjectId('609e7f1039a22ce57ee84414'), ObjectId('609e7f1039a22ce57ee84415'), ObjectId('609e7f1039a22ce57ee84416'), ObjectId('609e7f1039a22ce57ee84417'), ObjectId('609e7f1039a22ce57ee84418'), ObjectId('609e7f1039a22ce57ee84419'), ObjectId('609e7f1039a22ce57ee8441a'), ObjectId('609e7f1039a22ce57ee8441b'), ObjectId('609e7f1039a22ce57ee8441c'), ObjectId('609e7f1039a22ce57ee8441d')]

这说明我们成功地向集合中插入了多条文档,并且每个文档都有自己的ObjectId属性作为文档的_id。

4. 结论

以上就是MongoDB插入文档的方法。无论是手动指定文档的_id属性、还是自动生成ObjectId属性,都可以实现向集合中插入文档。如果需要一次性插入多个文档,我们还可以使用insert_many()方法。在使用MongoDB时,插入文档是一个非常常见的操作,因此本文介绍的相关知识点对于开发人员是非常有价值的。