Tìm hiểu cách chèn tài liệu trong Python MongoDB
07/05/2024 01:25
Để chèn một bản ghi hoặc tài liệu như được gọi trong MongoDB, vào một bộ sưu tập, chúng ta sử dụng insert_one()phương thức này.
Chèn vào bộ sưu tập
Để chèn một bản ghi hoặc tài liệu như được gọi trong MongoDB, vào một bộ sưu tập, chúng ta sử dụng insert_one()
phương thức này.
Tham số đầu tiên của insert_one()
phương thức này là một từ điển chứa (các) tên và (các) giá trị của từng trường trong tài liệu bạn muốn chèn.
Ví dụ
Chèn một bản ghi vào bộ sưu tập "khách hàng":
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydict = { "name": "John", "address": "Highway 37" }
x = mycol.insert_one(mydict)
Chạy ví dụ »Trả về trường _id
Phương thức này insert_one()
trả về một đối tượng InsertOneResult, có thuộc tính inserted_id
, chứa id của tài liệu được chèn.
Ví dụ
Chèn một bản ghi khác vào bộ sưu tập "khách hàng" và trả về giá trị của trường _id
:
mydict = { "name": "Peter", "address": "Lowstreet 27" }
x = mycol.insert_one(mydict)
print(x.inserted_id)
Chạy ví dụ »Nếu bạn không chỉ định một _id
trường thì MongoDB sẽ thêm một trường cho bạn và gán một id duy nhất cho mỗi tài liệu.
Trong ví dụ trên không có _id
trường nào được chỉ định, do đó MongoDB đã gán một _id duy nhất cho bản ghi (tài liệu).
Chèn nhiều tài liệu
Để chèn nhiều tài liệu vào một bộ sưu tập trong MongoDB, chúng tôi sử dụng insert_many()
phương thức này.
Tham số đầu tiên của insert_many()
phương thức là danh sách chứa các từ điển có dữ liệu bạn muốn chèn:
Ví dụ
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 list of the _id values of the inserted documents:
print(x.inserted_ids)
Chạy ví dụ »Phương thức này insert_many()
trả về một đối tượng InsertManyResult, có thuộc tính inserted_ids
, chứa id của các tài liệu được chèn.
Chèn nhiều tài liệu với ID được chỉ định
Nếu bạn không muốn MongoDB gán id duy nhất cho tài liệu của mình, bạn có thể chỉ định trường _id khi bạn chèn (các) tài liệu.
Hãy nhớ rằng các giá trị phải là duy nhất. Hai tài liệu không thể có cùng _id.
Ví dụ
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mylist = [
{ "_id": 1, "name": "John", "address": "Highway 37"},
{ "_id": 2, "name": "Peter", "address": "Lowstreet 27"},
{ "_id": 3, "name": "Amy", "address": "Apple st 652"},
{ "_id": 4, "name": "Hannah", "address": "Mountain 21"},
{ "_id": 5, "name": "Michael", "address": "Valley 345"},
{ "_id": 6, "name": "Sandy", "address": "Ocean blvd 2"},
{ "_id": 7, "name": "Betty", "address": "Green Grass 1"},
{ "_id": 8, "name": "Richard", "address": "Sky st 331"},
{ "_id": 9, "name": "Susan", "address": "One way 98"},
{ "_id": 10, "name": "Vicky", "address": "Yellow Garden 2"},
{ "_id": 11, "name": "Ben", "address": "Park Lane 38"},
{ "_id": 12, "name": "William", "address": "Central st 954"},
{ "_id": 13, "name": "Chuck", "address": "Main Road 989"},
{ "_id": 14, "name": "Viola", "address": "Sideway 1633"}
]
x = mycol.insert_many(mylist)
#print list of the _id values of the inserted documents:
print(x.inserted_ids)
Source: https://www.w3schools.com/python/python_mongodb_insert.asp