Làm cách nào để thay đổi giá trị trong mongodb?

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)

Thí 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})

Thí 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)

Thí 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(, )

Thí 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

Thí 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 -