Làm cách nào để cập nhật dữ liệu trong MongoDB theo id?

Các phương thức update() và save() của MongoDB được sử dụng để cập nhật tài liệu vào một bộ sưu tập. Phương thức update() cập nhật các giá trị trong tài liệu hiện có trong khi phương thức save() thay thế tài liệu hiện có bằng tài liệu được truyền trong phương thức save()

Phương thức cập nhật MongoDB()

Phương thức update() cập nhật các giá trị trong tài liệu hiện có

cú pháp

Cú pháp cơ bản của phương thức update() như sau -

>db.COLLECTION_NAME.update(SELECTION_CRITERIA, UPDATED_DATA)

Ví dụ

Hãy xem xét bộ sưu tập mycol có dữ liệu sau

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}

Ví dụ sau sẽ đặt tiêu đề mới 'Hướng dẫn MongoDB mới' cho các tài liệu có tiêu đề là 'Tổng quan về MongoDB'

>db.mycol.update({'title':'MongoDB Overview'},{$set:{'title':'New MongoDB Tutorial'}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
>db.mycol.find()
{ "_id" : ObjectId(5983548781331adf45ec5), "title":"New MongoDB Tutorial"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
>

Theo mặc định, MongoDB sẽ chỉ cập nhật một tài liệu duy nhất. Để cập nhật nhiều tài liệu, bạn cần đặt tham số 'multi' thành true

>db.mycol.update({'title':'MongoDB Overview'},
   {$set:{'title':'New MongoDB Tutorial'}},{multi:true})

Phương thức Lưu () MongoDB

Phương thức save() thay thế tài liệu hiện có bằng tài liệu mới được truyền vào phương thức save()

cú pháp

Cú pháp cơ bản của phương thức save() trong MongoDB được hiển thị bên dưới -

>db.COLLECTION_NAME.save({_id:ObjectId(),NEW_DATA})

Ví dụ

Ví dụ sau sẽ thay thế tài liệu bằng _id '5983548781331adf45ec5'

>db.mycol.save(
   {
      "_id" : ObjectId("507f191e810c19729de860ea"), 
		"title":"Tutorials Point New Topic",
      "by":"Tutorials Point"
   }
)
WriteResult({
	"nMatched" : 0,
	"nUpserted" : 1,
	"nModified" : 0,
	"_id" : ObjectId("507f191e810c19729de860ea")
})
>db.mycol.find()
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"Tutorials Point New Topic",
   "by":"Tutorials Point"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"NoSQL Overview"}
{ "_id" : ObjectId("507f191e810c19729de860e6"), "title":"Tutorials Point Overview"}
>

Phương thức findOneAndUpdate() của MongoDB

Phương thức findOneAndUpdate() cập nhật các giá trị trong tài liệu hiện có

cú pháp

Cú pháp cơ bản của phương thức findOneAndUpdate() như sau -

>db.COLLECTION_NAME.findOneAndUpdate(SELECTIOIN_CRITERIA, UPDATED_DATA)

Ví dụ

Giả sử chúng ta đã tạo một bộ sưu tập có tên empDetails và chèn ba tài liệu vào đó như hình bên dưới -

> db.empDetails.insertMany(
	[
		{
			First_Name: "Radhika",
			Last_Name: "Sharma",
			Age: "26",
			e_mail: "[email protected]",
			phone: "9000012345"
		},
		{
			First_Name: "Rachel",
			Last_Name: "Christopher",
			Age: "27",
			e_mail: "[email protected]",
			phone: "9000054321"
		},
		{
			First_Name: "Fathima",
			Last_Name: "Sheik",
			Age: "24",
			e_mail: "[email protected]",
			phone: "9000054321"
		}
	]
)

Ví dụ sau cập nhật giá trị tuổi và email của tài liệu có tên 'Radhika'

________số 8

Phương thức cập nhật MongoDBOne()

Phương pháp này cập nhật một tài liệu phù hợp với bộ lọc đã cho

cú pháp

Cú pháp cơ bản của phương thức updateOne() như sau -

>db.COLLECTION_NAME.updateOne(, )

Ví dụ

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
0

Phương thức updateMany() của MongoDB

Phương thức updateMany() cập nhật tất cả các tài liệu khớp với bộ lọc đã cho

cú pháp

Cú pháp cơ bản của phương thức updateMany() như sau -

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
1

Ví dụ

{ "_id" : ObjectId(5983548781331adf45ec5), "title":"MongoDB Overview"}
{ "_id" : ObjectId(5983548781331adf45ec6), "title":"NoSQL Overview"}
{ "_id" : ObjectId(5983548781331adf45ec7), "title":"Tutorials Point Overview"}
2

Bạn có thể thấy các giá trị được cập nhật nếu bạn truy xuất nội dung của tài liệu bằng phương thức find như bên dưới -

Làm cách nào để cập nhật dữ liệu trong MongoDB bằng id?

Làm cách nào để cập nhật _id của Tài liệu MongoDB? .
Bước 1. Ở bước đầu tiên, bạn cần lưu trữ ObjectId vào một biến. anyVariableName=db. .
Bước 2. Trong bước thứ hai, bạn cần đặt id mới. .
Bước 3. Ở bước thứ ba, bạn cần chèn id mới vào tài liệu. .
Bước 4. Ở bước thứ tư, bạn cần xóa id cũ

Chúng tôi có thể cập nhật trường ID MongoDB không?

Bạn không thể cập nhật nó . Bạn sẽ phải lưu tài liệu bằng _id mới, sau đó xóa tài liệu cũ.

Làm cách nào để cập nhật dữ liệu theo id trong cầy mangut?

Một trong những phương thức này là phương thức findByIdAndUpdate() . Phương thức findByIdAndUpdate() khớp với một tài liệu và sau đó cập nhật nó. Phương thức này cần một giá trị chuỗi, là giá trị của trường _id. Vì trường _id là duy nhất trong toàn bộ bộ sưu tập nên không có sai số.

Làm cách nào để sử dụng tìm theo id và cập nhật trong cầy mangut?

Cầy mangut. Hàm findByIdAndUpdate() . Cài đặt mô-đun cầy mangut. Bạn có thể truy cập liên kết để Cài đặt mô-đun cầy mangut. The findByIdAndUpdate() function is used to find a matching document, updates it according to the update arg, passing any options, and returns the found document (if any) to the callback. Installation of mongoose module: You can visit the link to Install mongoose module.