Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ใช้ findOneAndUpdate () เพื่ออัปเดตใน MongoDB หรือไม่


findOneAndUpdate() ใช้เพื่ออัปเดตเอกสารเดียวตามตัวกรองและเกณฑ์การจัดเรียง เช่น −

db.collection.findOneAndUpdate(filter, update, options)

ให้เราสร้างคอลเลกชันที่มีเอกสาร -

> db.demo328.insertOne({Name:"Chris",Marks:67});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e516b19f8647eb59e56207a")
}
> db.demo328.insertOne({Name:"David",Marks:78});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e516b24f8647eb59e56207b")
}
> db.demo328.insertOne({Name:"Bob",Marks:97});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e516b2bf8647eb59e56207c")
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo328.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5e516b19f8647eb59e56207a"), "Name" : "Chris", "Marks" : 67 }
{ "_id" : ObjectId("5e516b24f8647eb59e56207b"), "Name" : "David", "Marks" : 78 }
{ "_id" : ObjectId("5e516b2bf8647eb59e56207c"), "Name" : "Bob", "Marks" : 97 }

ต่อไปนี้เป็นแบบสอบถามที่จะอัปเดตด้วย findOneAndUpdate() ที่นี่เรากำลังเพิ่มเครื่องหมายฟิลด์ของเอกสารเฉพาะ -

> db.demo328.findOneAndUpdate({Name:"David"},{ $inc: { "Marks" : 10} });
{
   "_id" : ObjectId("5e516b24f8647eb59e56207b"),
   "Name" : "David",
   "Marks" : 78
}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -

> db.demo328.find();

สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -

{ "_id" : ObjectId("5e516b19f8647eb59e56207a"), "Name" : "Chris", "Marks" : 67 }
{ "_id" : ObjectId("5e516b24f8647eb59e56207b"), "Name" : "David", "Marks" : 88 }
{ "_id" : ObjectId("5e516b2bf8647eb59e56207c"), "Name" : "Bob", "Marks" : 97 }