Trong hướng dẫn MongoDB này, chúng ta sẽ thảo luận về "Tài liệu cập nhật MongoDB". Sau đây chúng ta sẽ tìm hiểu Cách cập nhật tài liệu vào MongoDB. Chúng tôi cũng sẽ đề cập đến điều này với các hoạt động khác nhau với các ví dụ. Đây là những chủ đề sau đây mà chúng ta sẽ đề cập trong hướng dẫn này
- Truy vấn cập nhật MongoDB
- Trường _id cập nhật MongoDB
- Toán tử cập nhật MongoDB
- Tài liệu cập nhật MongoDB
- MongoDB cập nhật tất cả các tài liệu
- Truy vấn cập nhật MongoDB với mệnh đề where
- MongoDB cập nhật nhiều tài liệu
- MongoDB cập nhật các phần tử mảng
- MongoDB cập nhật các phần tử mảng lồng nhau
- Truy vấn cập nhật MongoDB với điều kiện
- MongoDB cập nhật tài liệu bằng cách sử dụng la bàn
- Cập nhật MongoDB nếu tồn tại
- Cập nhật MongoDB so với updateMany
- Cập nhật MongoDB so với thay thế
- Bản cập nhật MongoDB không hoạt động
- Truy vấn cập nhật MongoDB với python
- Tài liệu cập nhật MongoDB theo id
- Tài liệu cập nhật MongoDB của ObjectId
- Tài liệu cập nhật MongoDB với trường mới
- Tài liệu cập nhật MongoDB ở đâu
Mục lục
- Truy vấn cập nhật MongoDB
- Trường _id cập nhật MongoDB
- Toán tử cập nhật MongoDB
- Cập nhật toán tử
- Tài liệu cập nhật MongoDB
- MongoDB cập nhật tất cả các tài liệu
- Truy vấn cập nhật MongoDB với mệnh đề where
- MongoDB cập nhật nhiều tài liệu
- MongoDB cập nhật các phần tử mảng
- MongoDB cập nhật các phần tử mảng lồng nhau
- Truy vấn cập nhật MongoDB với điều kiện
- MongoDB cập nhật tài liệu bằng cách sử dụng la bàn
- Cập nhật MongoDB nếu tồn tại
- Cập nhật MongoDB so với updateMany
- Cập nhật MongoDB so với thay thế
- Bản cập nhật MongoDB không hoạt động
- Truy vấn cập nhật MongoDB với python
- Tài liệu cập nhật MongoDB theo id [ObjectId]
- Tài liệu cập nhật MongoDB với trường mới
- Tài liệu cập nhật MongoDB ở đâu
Truy vấn cập nhật MongoDB
Trong MongoDB, chúng tôi sử dụng phương thức update[] để sửa đổi các tài liệu hiện có của một bộ sưu tập. Tùy thuộc vào tham số cập nhật, bạn có thể sửa đổi các trường cụ thể của tài liệu hiện có hoặc thay thế tài liệu hiện có
cú pháp
Cú pháp dưới đây được sử dụng để cập nhật tài liệu trong MongoDB
db.collection.update[
,
,
{
upsert: ,
multi: ,
writeConcern: ,
collation: ,
arrayFilters: [ , .. ],
hint: ,
let:
}
]
Phương thức update[] nhận các tham số sau
ParametersTypeDescriptionquerydocumentQuery bộ chọn cho cập nhậtupdatedocument hoặc đường ốngCác sửa đổi để áp dụng như tài liệu cập nhật, tài liệu thay thế và đường ống tổng hợpupsertboolean[tùy chọn] Khi đúng.tạo tài liệu mới nếu không có tài liệu nào phù hợp với truy vấn.
cập nhật một truy vấn phù hợp với truy vấn. multiboolean[tùy chọn] Nếu đúng thì cập nhật nhiều tài liệu và nếu đặt sai thì chỉ cập nhật một tài liệu. Theo mặc định, điều này là sai. writeConcerndocumentNó được sử dụng để viết mối quan tâm với các giao dịch. collationdocument [tùy chọn] Nó cho phép người dùng so sánh chuỗi quy tắc theo ngôn ngữ cụ thể. arrayFiltersarrayNó được sử dụng để xác định phần tử mảng nào cần sửa đổi cho thao tác cập nhật trên trường mảng. tài liệu gợi ý hoặc chuỗiNó được sử dụng để lấy tài liệu đặc tả chỉ mục hoặc chuỗi tên chỉ mục. letdocument[tùy chọn] Nó được sử dụng để chỉ định các tài liệu với một danh sách các biến.
Phương thức này trả về một tài liệu writeResult chứa trạng thái của các hoạt động
Đọc. Cách xóa cơ sở dữ liệu trong MongoDB
Trường _id cập nhật MongoDB
Trong MongoDB, bạn không thể cập nhật trực tiếp trường _id nhưng bằng cách viết một số tập lệnh, bạn có thể cập nhật trường _id. Bạn sẽ hiểu rõ hơn với sự trợ giúp của các ví dụ, vì vậy hãy hiểu ví dụ
Thí dụ
Trong ví dụ này, tôi sẽ chỉ cho bạn cách cập nhật trường _id
Đây là một số tài liệu tôi đã được đưa vào bộ sưu tập của những người
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
Sau khi chèn tài liệu vào bộ sưu tập, hãy xem tài liệu bằng MongoDB shell
Truy vấn sau được sử dụng để cập nhật trường _id trong MongoDB
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
Ở đây, chúng tôi chọn tài liệu mà trường _id mà chúng tôi muốn cập nhật bằng cách sử dụng phương thức findOne[] và lưu trữ nó vào một biến có tên là tài liệu
Sau khi chúng tôi cập nhật id bằng cách sử dụng “tài liệu. _id = 1001″ và chèn tài liệu đã cập nhật vào bộ sưu tập và chúng tôi xóa tài liệu trước đó bằng cách sử dụng phương thức remove[]
Kiểm tra ảnh chụp nhanh bên dưới để xem việc thực thi mã trong trình bao MongoDB
Chúng tôi đã cập nhật thành công trường _id. Ở đây, phương thức find[] được sử dụng để kiểm tra các tài liệu của bộ sưu tập
Đọc. Xuất MongoDB sang CSV
Toán tử cập nhật MongoDB
Trong MongoDB, có sẵn nhiều toán tử khác nhau cho các thao tác cập nhật
Bạn cần chỉ định các toán tử trong biểu mẫu tài liệu
{
: { : , .. },
: { : , .. },
...
}
Cập nhật toán tử
Lĩnh vực
NameDescription$currentDateIt được sử dụng để đặt giá trị của một trường thành ngày hiện tại, dưới dạng ngày hoặc dấu thời gian. $incBy số lượng đã chỉ định tăng giá trị của trường. $minGiá trị trường nhỏ hơn giá trị trường hiện có sau đó cập nhật. $maxGiá trị trường lớn hơn giá trị trường hiện có sau đó cập nhật. $mulBy số tiền được chỉ định nhân với giá trị của trường. $renameĐược sử dụng để đổi tên một trường. $setĐược sử dụng để đặt giá trị của một trường trong tài liệu. $setOnInsertĐặt giá trị của trường nếu một bản cập nhật dẫn đến việc chèn tài liệu. $unsetXóa trường đã chỉ định khỏi tài liệuToán tử mảng
NameDescription$Placeholder to update the first element that matches the query condition.$[]Matches the query condition and update all the elements in an array.$[]Use to update all the elements that match the arrayFilters condition.$addToSetIf not exist in the set then add elements to an array.$popUse to remove first or the last element of an array$pullUse to remove all the elements that match a specified query.$pushuse to add item into an array$pullAllUse to remove all the matching values from an array.sửa đổi
NameDescription$eachIt sửa đổi toán tử $push và $addToSet để nối thêm nhiều mục để cập nhật mảng. $positionĐể chỉ định vị trí trong mảng sửa đổi toán tử $push để thêm các phần tử$sliceIt sửa đổi toán tử $push để giới hạn kích thước của các mảng được cập nhật. $sortIt sửa đổi toán tử $push để sắp xếp lại các tài liệu được lưu trữ trong một mảngBitwise
NameDescription$bitNó thực hiện cập nhật bit AND, OR và XOR của các giá trị số nguyênTrong chủ đề này, chúng tôi đã đề cập đến tất cả các hoạt động cập nhật được sử dụng trong cơ sở dữ liệu MongoDB
Đọc. MongoDB không được công nhận là lệnh nội bộ hoặc bên ngoài
Tài liệu cập nhật MongoDB
Trong MongoDB, Để cập nhật một tài liệu trong bộ sưu tập, chúng tôi sử dụng phương thức updateOne[]
Thí dụ
Trong ví dụ này, chúng tôi sử dụng quy trình tổng hợp để sửa đổi hoặc cập nhật một trường
> db.group.insertMany[[
{
"_id" : 1,
"member" : "abc123",
"status" : "A",
"points" : 2,
"misc1" : "note to self: confirm status",
"misc2" : "Need to activate",
"lastUpdate" : ISODate["2019-01-01T00:00:00Z"]
},
{
"_id" : 2,
"member" : "xyz123",
"status" : "A",
"points" : 60,
"comments" : [
"reminder: ping me at 100pts",
"Some random comment"
],
"lastUpdate" : ISODate["2019-01-01T00:00:00.00Z"]
}
]]
Các tài liệu sau đây sẽ chèn vào bộ sưu tập nhóm. Và bạn có thể kiểm tra các tài liệu của bộ sưu tập nhóm bằng cách sử dụng phương thức find[]
Đây là một số tài liệu được chèn vào bộ sưu tập của nhóm. Bây giờ, chúng ta áp dụng phương thức updateOne[] để cập nhật tài liệu
> db.group.UpdateOne[
{ _id : 2},
[{ $set :
{ status : "Modified",
lastUpdate : "$$NOW"}}]
]
Ở đây, chúng tôi sử dụng một đường dẫn tổng hợp để sửa đổi một trường. Trước tiên, chúng tôi chọn một trường cụ thể bằng cách sử dụng _id, sau đó áp dụng trường $set cho trường đặt giá trị cho trạng thái và trường lastUpdate
Xem việc thực thi mã trong trình bao MongoDB
Phương thức find[] được sử dụng để kiểm tra các tài liệu của bộ sưu tập. Và xem chúng ta đã cập nhật thành công một tài liệu bằng cách sử dụng phương thức updateOne[]
Đọc. MongoDB tham gia hai bộ sưu tập
MongoDB cập nhật tất cả các tài liệu
Trong MongoDB, Để cập nhật tất cả các tài liệu khớp với cập nhật bộ lọc đã chỉ định với sự trợ giúp của phương thức updateMany[]
Thí dụ
Trong ví dụ này, tôi sẽ chỉ cho bạn cách sử dụng phương thức updateMany[] để cập nhật tất cả các tài liệu của bộ sưu tập
> db.items.insertMany[[
{ "_id": 1, "item:: "almond", "description": "almond clusters", "instock": 120},
{ "_id": 2, "item:: "bread", "description": "raisin and nut bread", "instock": 80},
{ "_id": 3, "item:: "pecans", "description": "candied pecans", "instock": 60}
]]
Sau khi chèn tài liệu, Kiểm tra tài liệu của bộ sưu tập mục bằng phương thức find[]
Hoạt động sau đây cập nhật tất cả các tài liệu của bộ sưu tập vật phẩm trong kho lớn hơn 70 và sử dụng $set để thêm đánh giá trường mới trong đó kho lớn hơn 70
> db.items.updateMany[
{ instock : { $gt : 70}},
{ $set : {"Review" : true}}
]
Xem việc thực thi mã trong trình bao MongoDB
Bạn có thể thấy rằng tất cả các tài liệu được cập nhật thành công
Đọc. Nhập CSV vào MongoDB
Truy vấn cập nhật MongoDB với mệnh đề where
Chúng tôi có thể làm điều này với sự trợ giúp của các hoạt động đường ống. hãy hiểu với sự giúp đỡ của các ví dụ
Thí dụ
Các tài liệu sau đây được đưa vào bộ sưu tập của sinh viên
________số 8Here, we update all the elements of the grades array where grades greater than or equal to 100. For updating this, we use operator $[] with the arrayFilter:
> db.students.update[
{ grades: { $gte: 100 } },
{ $set: { "grades.$[element]" : 100 } },
{
multi: true,
arrayFilters: [ { "element": { $gte: 100 } } ]
}
]
Sau khi thực thi đoạn mã trên, nó sẽ hiển thị đầu ra sau
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
0Ở đây, chúng tôi đã cập nhật thành công tất cả các điểm lớn hơn 100 bằng cách sử dụng tham số arrayFilters
Đọc. Nhóm MongoDB theo nhiều trường
MongoDB cập nhật nhiều tài liệu
Trong MongoDB, bạn có thể cập nhật nhiều tài liệu bằng cách sử dụng một phương thức duy nhất là updateMany[]. Và ở đây chúng tôi sử dụng một đường dẫn tổng hợp sẽ cập nhật các tài liệu
Thí dụ
Trong ví dụ này, chúng tôi cập nhật các tài liệu với điểm trung bình và điểm chữ được tính toán bằng cách sử dụng đường dẫn tổng hợp
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
1Đây, xem chúng tôi đã chèn một số tài liệu vào bộ sưu tập của sinh viên
Bây giờ, chúng tôi sẽ cập nhật nhiều tài liệu bằng cách sử dụng đường dẫn tổng hợp
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
2Ở đây, chúng tôi sử dụng phương thức updateMany[] để cập nhật nhiều tài liệu. Và trong phương pháp này
- { } được sử dụng để áp dụng điều kiện trên tất cả các tài liệu
- Sử dụng trường $set để cập nhật tài liệu với điểm trung bình và điểm chữ cái
Bây giờ hãy xem việc thực thi mã trong trình bao MongoDB
Chúng tôi đã cập nhật thành công tất cả các tài liệu của bộ sưu tập sinh viên. Phương thức find[] được sử dụng để kiểm tra tài liệu của bộ sưu tập
Đọc. MongoDB không kết nối được
MongoDB cập nhật các phần tử mảng
Chúng tôi có thể cập nhật các phần tử cụ thể của một mảng tài liệu trong MongoDB. Để cập nhật tài liệu chúng ta sử dụng phương thức updateMany[]. Bạn sẽ hiểu rõ hơn với ví dụ, vì vậy hãy bắt tay vào thực hiện
Thí dụ
Trong ví dụ này, chúng ta sẽ kiểm tra các phần tử trong mảng điểm nếu điểm lớn hơn 85 thì sửa tất cả các phần tử của giá trị trung bình bằng 100
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
3Đây là một số tài liệu được chèn vào bộ sưu tập điểm
Bây giờ, chúng tôi sửa đổi giá trị của trường trung bình cho tất cả các phần tử trong mảng điểm trong đó điểm lớn hơn bằng 85
For this, we use filtered positional operator $[] with arrayFilters.
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
4Xem việc thực thi mã trong trình bao MongoDB
Ở đây, chúng ta sử dụng toán tử vị trí đã lọc và cập nhật tất cả các trường trung bình có điểm lớn hơn 85
Cập nhật tài liệu thu điểm
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
5Tại đây, chúng tôi đã cập nhật thành công tài liệu phần tử mảng cụ thể. Và cố gắng làm nhiều ví dụ hơn để bạn hiểu MongoDB cập nhật tài liệu như thế nào
Đọc. Bộ sưu tập thả MongoDB
MongoDB cập nhật các phần tử mảng lồng nhau
Trong chủ đề này, bạn sẽ hiểu cách cập nhật các phần tử mảng lồng nhau và như bạn đã biết trong chủ đề trước, chúng tôi cũng đề cập đến việc cập nhật các phần tử mảng. Cả hai chủ đề này hơi giống nhau
Sau đây tôi sẽ đưa ra một ví dụ khác để các bạn dễ hiểu cách cập nhật các phần tử mảng lồng nhau
Thí dụ
Các tài liệu sau đây đã được đưa vào bộ sưu tập của sinh viên
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
6Bây giờ, chúng tôi cập nhật các lớp lồng nhau. mảng câu hỏi và bằng cách sử dụng toán tử $inc để tăng giá trị lên 2 trong đó giá trị lớn hơn bằng 8
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
7Việc thực thi phương thức updateMany[] để cập nhật các phần tử mảng lồng nhau
Chúng tôi đã cập nhật thành công tài liệu. Bây giờ kiểm tra các tài liệu của bộ sưu tập sinh viên
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
8Xem tất cả các trường được cập nhật thành công và bằng cách này, bạn có thể dễ dàng cập nhật các phần tử của mảng lồng nhau. Phương thức find[] được sử dụng để truy xuất các tài liệu của bộ sưu tập
Đọc. Cách lưu trữ hình ảnh trong MongoDB
Truy vấn cập nhật MongoDB với điều kiện
Trong MongoDB, bạn có thể cập nhật trường cụ thể với các điều kiện bằng cách sử dụng phương thức update[]
Thí dụ
Để hiểu truy vấn cập nhật với một điều kiện, hãy hiểu ví dụ này
> db.persons.insertMany[[
{"_id":ObjectId["612f146e1a18fbb8eaf2b8e2"], "Name":"David", "Age":22, "Gender":"Male" },
{"_id":ObjectId["612f147f1a18fbb8eaf2b8e3"], "Name":"Peter", "Age":24, "Gender":"Male" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e4"], "Name":"Stromi", "Age":22, "Gender":"Female" },
{"_id":ObjectId["612f14b21a18fbb8eaf2b8e5"], "Name":"Kim", "Age":23, "Gender":"Female" }
]]
9Đây là một số tài liệu được đưa vào bộ sưu tập dữ liệu
Bây giờ, chúng tôi áp dụng phương thức update[] với các điều kiện để chúng tôi sử dụng trường $set để cập nhật giá trị trường của tài liệu
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
0Ở đây, chúng tôi cập nhật giá trị trường chủ đề có tên là Tom. Để kiểm tra tài liệu được cập nhật, hãy sử dụng phương thức find[]
Xem việc thực thi mã trong trình bao MongoDB
Chúng tôi đã cập nhật thành công giá trị trường chủ đề. Bằng cách này, bạn có thể dễ dàng cập nhật các tài liệu theo điều kiện
Lưu ý rằng, nếu bạn có nhiều trường có cùng tên thì trong trường hợp đó
- Chọn trường duy nhất với trợ giúp đó, bạn có thể dễ dàng cập nhật trường
- Bạn cũng biết về trường _id luôn là duy nhất, vì vậy với sự trợ giúp đó, bạn có thể cập nhật các trường
Đọc. Nhóm MongoDB theo số lượng
MongoDB cập nhật tài liệu bằng cách sử dụng la bàn
Trong MongoDB la bàn, bạn không thể cập nhật nhiều tài liệu cùng một lúc. La bàn thực hiện thao tác tìm và cập nhật và chỉ cập nhật những trường mà bạn đã thay đổi. Bạn có thể chỉnh sửa tài liệu trong dạng xem Danh sách hoặc Bảng
Quy trình cập nhật tài liệu
- Chọn bộ sưu tập tài liệu bạn muốn cập nhật
- Chọn tab dựa trên việc xem tài liệu trong Chế độ xem danh sách, JSON hoặc Bảng
Ở đây, chúng tôi đã chọn bộ sưu tập của các nghệ sĩ để cập nhật tài liệu và chọn CHẾ ĐỘ XEM mà bạn muốn xem tài liệu
- Để sửa đổi tài liệu, hãy di chuột vào tài liệu và nhấp vào biểu tượng bút chì
- Sau khi nhấp vào biểu tượng bút chì, tài liệu sẽ mở ở chế độ chỉnh sửa
Tại đây, bạn có thể thực hiện các thay đổi đối với các trường và cũng có thể thay đổi kiểu dữ liệu của các giá trị
- Bạn cũng có thể xóa một trường, nhấp vào biểu tượng X ở bên trái của trường
- Khi bạn đã chọn trường để xóa, trường đó sẽ xuất hiện màu đỏ
- Bạn có thể sửa đổi tên hoặc giá trị trường hiện có và sau khi cập nhật trường, trường sẽ hiển thị màu vàng
- Bạn cũng có thể thêm trường mới trong tài liệu sau trường hiện có, số hàng trong hộp thoại, nhấp vào dấu cộng và đặt kiểu dữ liệu theo yêu cầu của bạn và sau khi thêm trường, trường sẽ hiển thị màu xanh lục
- khi bạn chỉnh sửa tài liệu xong, hãy nhấp vào nút cập nhật để thực hiện tất cả các thay đổi
- Để thoát khỏi chế độ chỉnh sửa và hủy tất cả các thay đổi đang chờ xử lý, hãy nhấp vào nút Hủy
Bằng cách này, bạn có thể chỉ cần cập nhật tài liệu của bộ sưu tập bằng la bàn MongoDB
Đọc. Nhập JSON và chèn JSON vào MongoDB
Cập nhật MongoDB nếu tồn tại
Để thực hiện nhiệm vụ này, chúng tôi sử dụng một hoạt động upsert. Khi bạn chèn một giá trị và giá trị đó đã tồn tại thì một bản cập nhật sẽ được thực hiện và nếu giá trị đó không tồn tại thì nó sẽ được chèn vào
Thí dụ
Trong ví dụ này, chúng tôi đề cập nếu tài liệu tồn tại thì cập nhật nếu không thì chèn nó dưới dạng một trường mới
Các tài liệu sau đây được đưa vào bộ sưu tập nhãn hiệu
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
1Sau khi chèn tài liệu vào bộ sưu tập, hãy kiểm tra nó bằng cách sử dụng phương thức find[] trong trình bao MongoDB
Bây giờ, chúng tôi xử lý cả hai trường hợp để hiểu khái niệm về bản cập nhật nếu có
Trường hợp 1. Khi giá trị bạn đang chèn đã tồn tại thì giá trị đó sẽ được cập nhật theo truy vấn sau
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
2Tại đây, Xem chủ đề [tiếng Anh] đã tồn tại trong tài liệu để phương thức update[] cập nhật điểm hoặc chèn nó dưới dạng một trường mới
Xem tài liệu giá trị bộ sưu tập nhãn hiệu được cập nhật thành công
trường hợp 2. Khi giá trị bạn đang chèn chưa tồn tại thì giá trị đó là duy nhất thì nó sẽ được chèn bởi truy vấn sau
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
3Ở đây, hãy xem sau khi sử dụng phương thức update[], trường chúng tôi đang cập nhật không tồn tại nên sử dụng upsert, nó sẽ chèn dưới dạng một trường mới
Xem chúng tôi đã chèn thành công một trường mới vì theo điều kiện, trường này không tồn tại trong bộ sưu tập nhãn hiệu
Lưu ý, thao tác upsert là gì?
Upsert là một tùy chọn được sử dụng để cập nhật các thao tác hay nói cách khác upsert là sự kết hợp giữa update và insert [update + insert = upsert]
Đọc. MongoDB sắp xếp theo ngày
Cập nhật MongoDB so với updateMany
Phương thức “update” được sử dụng để sửa đổi các trường cụ thể của tài liệu hiện có hoặc thay thế các tài liệu hiện có tùy thuộc vào tham số cập nhật trong khi “updateMany” được sử dụng để cập nhật tất cả các tài liệu khớp với bộ lọc đã cho
Thí dụ
Ở đây tôi sẽ cung cấp cho bạn các ví dụ về cả phương thức update và updateMany
Các tài liệu sau đây được đưa vào bộ sưu tập hàng tồn kho
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
4Sau khi chèn tài liệu, chúng ta sẽ cập nhật tài liệu bằng phương thức update[]
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
5Kiểm tra việc thực thi mã trong trình bao MongoDB
Cập nhật tài liệu bằng phương thức updateMany[]
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
6Kiểm tra việc thực thi mã trong trình bao MongoDB
Như vậy ta thấy cả ví dụ cập nhật chứng từ và cập nhật chứng từ thành công
Đọc. MongoDB sắp xếp theo lĩnh vực
Cập nhật MongoDB so với thay thế
Trong chủ đề này, chúng tôi thảo luận chi tiết về phương pháp cập nhật và thay thế của MongoDB
Phương thức updateOne[] được sử dụng để cập nhật một tài liệu. Chúng tôi thay thế tài liệu hiện có hoặc cập nhật các trường cụ thể trong tài liệu hiện có
Phương thức replaceOne[] được sử dụng để thay thế toàn bộ trường tài liệu và dữ liệu cũ của bạn sẽ được thay thế bằng dữ liệu mới
Thí dụ
Trong ví dụ này, bạn sẽ thấy cách bạn có thể sử dụng phương thức updateOne[] và replaceOne[] để cập nhật tài liệu
Sử dụng phương thức replaceOne[]
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
7Ở đây, chúng tôi chỉ chèn một tài liệu duy nhất vào bộ sưu tập thử nghiệm và sau đó áp dụng phương thức replaceOne[] để thay thế tài liệu cũ
Xem việc thực thi mã trong trình bao MongoDB
Sử dụng phương thức updateOne[]
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
8Ở đây, phương thức updateOne[] đã cập nhật tài liệu trong một tài liệu hiện có
Xem việc thực thi mã trong trình bao MongoDB
Ở đây, chúng ta đã học cả [cập nhật và thay thế] các phương thức của MongoDB
Đọc. Tạo bảng trong MongoDB
Bản cập nhật MongoDB không hoạt động
Vài ngày trước, tôi đã làm việc với phương pháp cập nhật MongoDB nhưng không nhận được kết quả theo yêu cầu. Kiểm tra tập lệnh bên dưới và xem phương thức cập nhật không hoạt động bình thường
Các tài liệu sau đã được chèn vào bộ sưu tập phim
> var documents = db.persons.findOne[{"Name": "Stromi"}]
> document._id
ObjectId["612f14b21a18fbb8eaf2b8e4"]
> document._id = 1001
1001
> db.perosns.insert[document]
WriteResult[{ "nInserted" : 1 }]
> db.persons.remove[{_id: ObjectId["612f14b21a18fbb8eaf2b8e4"]}]
WriteResult[{ "nRemoved" : 1 }]
9Sau khi chèn tài liệu vào bộ sưu tập, hãy kiểm tra nó bằng cách sử dụng phương thức find[] trong MongoDB Shell
Và sau đó, cố gắng cập nhật tài liệu nhưng không nhận được đầu ra theo yêu cầu hoặc phương thức cập nhật [] không hoạt động bình thường
Xem đầu ra sau khi cập nhật tài liệu, phương thức update[] cập nhật một trường, thay thế tất cả các trường có “_id. 2”
Vì vậy, để giải quyết lỗi này, tôi cố gắng tìm giải pháp và đọc rất nhiều bài viết trên web. Tôi đã tìm ra giải pháp và giải pháp đó phù hợp với tôi nên tôi sẽ chia sẻ nó với bạn
Khi bạn đang cập nhật bất kỳ tài liệu nào, hãy luôn sử dụng phương thức updateOne[] hoặc updateMany[] vì đôi khi phương thức update[] hoạt động như phương thức replace[] và phương thức này cập nhật, thay đổi tất cả các trường của tài liệu
khi bạn đang cập nhật tài liệu của bộ sưu tập, hãy sử dụng thao tác $set để cập nhật giá trị của một trường cụ thể
{
: { : , .. },
: { : , .. },
...
}
0Xem việc thực thi mã trong trình bao MongoDB
Ở đây, hãy xem chúng tôi đã cập nhật thành công trường tài liệu bằng phương thức updateOne[]
Lưu ý rằng, thao tác $set được sử dụng để thay thế giá trị của một trường bằng giá trị đã chỉ định và Nếu trường đã cho không tồn tại trong tài liệu, toán tử $set sẽ thêm trường vào giá trị đã chỉ định
Đọc. Ưu và nhược điểm của MongoDB
Truy vấn cập nhật MongoDB với python
Trong MongoDB sử dụng python, bạn có thể cập nhật nội dung của các tài liệu hiện có bằng phương thức update_one[]. Phương pháp này có sẵn trong thư viện pymongo được sử dụng để cập nhật một tài liệu
Phương thức chấp nhận một truy vấn như tài liệu nào bạn muốn cập nhật và thao tác cập nhật
Thí dụ
Trong ví dụ này, chúng ta sẽ tìm hiểu cả hai phương thức update_one[] và update_many[] và cập nhật giá trị vị trí của tài liệu trong bộ sưu tập bằng cách sử dụng python
Trong python, phương thức update_one[] được cung cấp bởi thư viện pymongo được sử dụng để cập nhật một tài liệu thỏa mãn điều kiện đã xác định
Ở đây, Đoạn mã dưới đây được sử dụng để cập nhật một tài liệu
{
: { : , .. },
: { : , .. },
...
}
1đầu ra
Sau khi thực thi mã, bạn sẽ nhận được đầu ra như dưới đây
Tương tự, phương thức update_many[] cũng được cung cấp bởi thư viện pymongo và được sử dụng để cập nhật nhiều tài liệu thỏa mãn điều kiện đã xác định
Ở đây, Mã dưới đây được sử dụng để cập nhật nhiều tài liệu
{
: { : , .. },
: { : , .. },
...
}
2đầu ra
Sau khi thực thi mã, bạn sẽ nhận được đầu ra như dưới đây
Xem cả hai kết quả đầu ra và chúng tôi đã cập nhật thành công tài liệu của một bộ sưu tập cụ thể bằng python
Đọc. MongoDB tạo bộ sưu tập như thế nào
Tài liệu cập nhật MongoDB theo id [ObjectId]
Trong MongoDB, đôi khi chúng ta chỉ phải cập nhật tài liệu của một ID cụ thể. Để làm được điều đó, bạn phải xác định ID cụ thể trong phương thức update[] và sau đó, bạn có thể dễ dàng cập nhật các trường của tài liệu. Hãy hiểu rõ hơn với sự giúp đỡ của một ví dụ
Thí dụ
Trong ví dụ này, chúng ta sẽ học cách cập nhật tài liệu của một ID cụ thể
Các tài liệu sau đây được đưa vào bộ sưu tập sách
{
: { : , .. },
: { : , .. },
...
}
3Kiểm tra các tài liệu của bộ sưu tập sách bằng cách sử dụng MongoDB Shell
Sau khi chèn tài liệu vào bộ sưu tập sách. Bây giờ chúng ta áp dụng phương thức update[] và cập nhật tài liệu của một id cụ thể
{
: { : , .. },
: { : , .. },
...
}
4Ở đây, chúng tôi cập nhật trường _id. 1. Chúng tôi sử dụng $inc để tăng cổ phiếu lên 4 và sử dụng trường $set để cập nhật mục trường, thông tin. nhà xuất bản, thẻ và xếp hạng. Bạn cũng có thể cập nhật thêm các trường theo yêu cầu của câu hỏi
Bây giờ hãy xem việc thực thi mã trong trình bao MongoDB
Chúng tôi đã cập nhật thành công các tài liệu của bộ sưu tập sách. Phương thức find[] được sử dụng để lấy tài liệu
Đọc. Sao lưu và khôi phục MongoDB
Tài liệu cập nhật MongoDB với trường mới
Trong MongoDB, chúng tôi có thể cập nhật các tài liệu với một trường mới. Nó giống như cập nhật trường bộ sưu tập hiện có
Đối với điều này, chúng tôi sử dụng $set được sử dụng để thêm các trường mới nếu trường được chỉ định không tồn tại
Bạn sẽ hiểu rõ hơn với sự trợ giúp của một ví dụ, vì vậy hãy bắt đầu
Thí dụ
Trong ví dụ này, chúng tôi thêm một trường mới vào trường bộ sưu tập hiện có. Phương thức update[] chèn trường mới nếu trường được chỉ định không tồn tại
Các tài liệu sau đây được đưa vào bộ sưu tập của sinh viên
{
: { : , .. },
: { : , .. },
...
}
5Kiểm tra tài liệu bằng cách sử dụng MongoDB Shell
Bây giờ chúng tôi áp dụng phương pháp cập nhật bên dưới cho một trường mới nếu không tồn tại
{
: { : , .. },
: { : , .. },
...
}
6Tại đây, $set sẽ thêm một trường mới nếu trường được chỉ định không tồn tại
Bây giờ hãy xem việc thực thi mã trong trình bao MongoDB
Xem chúng tôi đã chèn thành công một trường mới vào tài liệu
Lưu ý rằng, trong trường hợp bạn muốn thêm new_field vào tất cả bộ sưu tập của mình thì bạn phải sử dụng bộ chọn trống và đặt cờ multi thành true để cập nhật tất cả tài liệu
{
: { : , .. },
: { : , .. },
...
}
7Upsert. Nếu bạn thiết lập upsert là true thì nó sẽ tạo một tài liệu mới khi không có tài liệu nào khớp với tiêu chí truy vấn
đa. Nếu bạn đặt multi là true thì nó sẽ cập nhật nhiều tài liệu đáp ứng tiêu chí truy vấn. Nếu được đặt thành false, hãy cập nhật một tài liệu
Đọc. Cách tạo cơ sở dữ liệu mới trong MongoDB
Tài liệu cập nhật MongoDB ở đâu
Trong MongoDB, chúng tôi cập nhật tài liệu với sự trợ giúp của phương thức updateOne[] hoặc updateMany[]. Ở đây, nơi sử dụng là so khớp các tài liệu thỏa mãn biểu thức và sau đó, chúng tôi cập nhật các tài liệu của bộ sưu tập bằng cách sử dụng phương thức cập nhật
Bạn sẽ hiểu rõ hơn với sự trợ giúp của một ví dụ, vì vậy hãy bắt đầu
Thí dụ
Trong ví dụ này, chúng tôi sẽ cập nhật một trường cụ thể theo điều kiện where
Các tài liệu sau đây được chèn vào bộ sưu tập chi tiết
{
: { : , .. },
: { : , .. },
...
}
8Kiểm tra tài liệu bằng cách sử dụng MongoDB Shell
Sau khi chèn tài liệu, Bây giờ chúng ta áp dụng điều kiện where và cập nhật tài liệu của một trường cụ thể
{
: { : , .. },
: { : , .. },
...
}
9Ở đây, phương thức cập nhật được sử dụng để cập nhật các tài liệu có First_name là James. Và chúng tôi cập nhật trường Tuổi và e_mail với sự trợ giúp của $set[aggregation]
Lưu ý rằng, toán tử
> db.group.insertMany[[
{
"_id" : 1,
"member" : "abc123",
"status" : "A",
"points" : 2,
"misc1" : "note to self: confirm status",
"misc2" : "Need to activate",
"lastUpdate" : ISODate["2019-01-01T00:00:00Z"]
},
{
"_id" : 2,
"member" : "xyz123",
"status" : "A",
"points" : 60,
"comments" : [
"reminder: ping me at 100pts",
"Some random comment"
],
"lastUpdate" : ISODate["2019-01-01T00:00:00.00Z"]
}
]]
0 thay thế giá trị của một trường bằng giá trị đã chỉ địnhBây giờ hãy xem việc thực thi mã trong trình bao MongoDB
Chúng tôi đã cập nhật thành công các tài liệu của bộ sưu tập chi tiết. Phương thức find[] được sử dụng để lấy tài liệu
Hướng dẫn liên quan đến MongoDB
- Không tìm thấy thư mục dữ liệu MongoDB/data/db
Trong hướng dẫn này, bạn đã học Cách cập nhật tài liệu vào MongoDB với các thao tác và ví dụ khác nhau. Đây là những chủ đề sau mà chúng tôi đã đề cập trong hướng dẫn này
- Truy vấn cập nhật MongoDB
- Trường _id cập nhật MongoDB
- Toán tử cập nhật MongoDB
- Tài liệu cập nhật MongoDB
- MongoDB cập nhật tất cả các tài liệu
- Truy vấn cập nhật MongoDB với mệnh đề where
- MongoDB cập nhật nhiều tài liệu
- MongoDB cập nhật các phần tử mảng
- MongoDB cập nhật các phần tử mảng lồng nhau
- Truy vấn cập nhật MongoDB với điều kiện
- MongoDB cập nhật tài liệu bằng cách sử dụng la bàn
- Cập nhật MongoDB nếu tồn tại
- Cập nhật MongoDB so với updateMany
- Cập nhật MongoDB so với thay thế
- Bản cập nhật MongoDB không hoạt động
- Truy vấn cập nhật MongoDB với python
- Tài liệu cập nhật MongoDB theo id
- Tài liệu cập nhật MongoDB của objectid
- Tài liệu cập nhật MongoDB với trường mới
- Tài liệu cập nhật MongoDB ở đâu
Bijay
Tôi là Bijay có hơn 15 năm kinh nghiệm trong ngành công nghiệp phần mềm. Trong thời gian này, tôi đã làm việc trên MariaDB và sử dụng nó trong rất nhiều dự án. Hầu hết độc giả của chúng tôi đến từ Hoa Kỳ, Canada, Vương quốc Anh, Úc, New Zealand, v.v.
Bạn muốn tìm hiểu MariaDB? . Ngoài ra, tôi là MVP của Microsoft