db.collection.updateOne() ใน MongoDB คืออะไร

Db Collection Updateone Ni Mongodb Khux Xari



MongoDB เป็นฐานข้อมูลที่ไม่ใช่เชิงสัมพันธ์อันทรงพลังที่สามารถจัดเก็บเอกสารได้หลายชุด ในบางครั้ง ผู้ใช้อาจต้องอัปเดตเอกสารเดียวที่ตรงตามเกณฑ์ที่กำหนด ในสถานการณ์นี้ พวกเขาสามารถใช้ ' db.collection.updateOne() ” ซึ่งปรับปรุงและแก้ไขเอกสารแรกที่ตรงตามเกณฑ์การคัดเลือกและแก้ไข

เมธอด “db.collection.updateOne()” ใน MongoDB คืออะไร

db.collection.updateOne() ” วิธีการปรับปรุงเอกสารเดียวที่ตรงกับเกณฑ์ที่กำหนด หากมีเอกสารมากกว่าหนึ่งรายการที่ตรงกับเกณฑ์ เฉพาะเอกสารแรกเท่านั้นที่จะถูกแก้ไข สามารถใช้กับ Update Operator เช่น “ ชุด $ ”, “ $inc ' และ อื่น ๆ อีกมากมาย .

วิธีการใช้เมธอด “db.collection.updateOne()” ใน MongoDB

db.collection.updateOne() ” สามารถใช้เมธอดเพื่ออัปเดตฟิลด์เดียวรวมถึงหลายฟิลด์ของเอกสารเดียวที่ตรงกับเกณฑ์การเลือก ยิ่งไปกว่านั้น วิธีนี้ยังสามารถเพิ่มฟิลด์ลงในเอกสารและสามารถใช้กับตัวดำเนินการอัพเดตได้ ไวยากรณ์ของ “ db.collection.updateOne() ” มีวิธีการดังต่อไปนี้:







ไวยากรณ์พื้นฐาน



db.collection.updateOne ( { filter_เกณฑ์ } , { อัปเดต } , { ตัวเลือก } )

ที่นี่ในไวยากรณ์ข้างต้น:



  • วิธีนี้จะอัปเดตเอกสารแรกที่ตรงตามเกณฑ์การคัดเลือก
  • filter_เกณฑ์ ” กำหนดเกณฑ์สำหรับการปรับปรุง
  • อัปเดต ” มีฟิลด์ที่จะแก้ไขในเอกสาร
  • ตัวเลือก ” อาร์กิวเมนต์เป็นอาร์กิวเมนต์ทางเลือกที่แก้ไขการทำงานของเมธอดนี้ เช่น “ ขึ้น ' และ ' คำใบ้

สำหรับโพสต์นี้ เราจะใช้ “ Linuxhint_Col2 ” เอกสารชุดสะสมเพื่อสาธิตการทำงานของ “ db.collection.updateOne() ' วิธี. หากต้องการดูเอกสารที่จัดเก็บไว้ในคอลเล็กชันนี้ ให้ดำเนินการตามคำสั่งที่ให้ไว้:





db.Linuxhint_Col2.find ( )

เอาต์พุต

ผลลัพธ์จะดึงเอกสารทั้งหมดที่จัดเก็บไว้ใน “ Linuxhint_Col2 ' ของสะสม.



ตัวอย่างที่ 1: อัปเดตฟิลด์เดียว
หากต้องการอัปเดตเขตข้อมูลเดียวในเอกสาร ให้กำหนดเกณฑ์การเลือกและอัปเดตเกณฑ์ เกณฑ์การอัพเดตสามารถกำหนดได้โดยใช้ตัวดำเนินการอัพเดต ให้เราเรียกใช้แบบสอบถามเพื่ออัปเดต “ Modeling_Fee ” ช่องถึง “ 18000 ' ที่ไหน ' นามสกุล ” วัตถุเท่ากับ “ เดปป์ ” ในเอกสาร:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.Last_Name' : 'เดปป์' } , { ชุด $ : { การสร้างแบบจำลอง_ค่าธรรมเนียม: 18000 } } )

เอาต์พุต

ผลลัพธ์ส่งคืนข้อความแสดงความสำเร็จ

หากต้องการตรวจสอบการเปลี่ยนแปลง ให้ดึงเอกสารที่ได้รับผลกระทบโดยใช้สิ่งนี้ “ หา() ' สั่งการ:

db.Linuxhint_Col2.find ( { 'Model_Name.Last_Name' : 'เดปป์' } )

เอาต์พุต

ผลลัพธ์ยืนยันว่าเอกสารได้รับการอัพเดตเรียบร้อยแล้ว

ตัวอย่างที่ 2: เพิ่มฟิลด์ใหม่โดยใช้เมธอด “db.collection.updateOne()”
db.collection.updateOne() ” วิธีการเพิ่มเขตข้อมูลใหม่โดยใช้ “ ชุด $ ” ตัวดำเนินการในเอกสารหากไม่มีอยู่ ในฐานะที่ “ ประสบการณ์ ฟิลด์ ” ไม่มีอยู่สำหรับเอกสารที่ “ Modeling_Fee ' น้อยกว่า ' 9000 '.

ให้เราเพิ่มฟิลด์ใหม่ “ ประสบการณ์ ” มีค่า “ เริ่มต้น ” ในเอกสารที่ “ Modeling_Fee ' น้อยกว่า ' 9000 ” ใช้แบบสอบถามนี้:

db.Linuxhint_Col2.updateOne ( { 'โมเดลลิ่ง_ฟี' : { $lt : 9000 } } , { ชุด $ : { 'ประสบการณ์' : 'มือใหม่' } } )

เอาต์พุต

เอาต์พุตส่งคืนข้อความซึ่งระบุว่าเอกสารหนึ่งรายการตรงกับเกณฑ์การเลือกและแก้ไขเรียบร้อยแล้ว

ให้เราตรวจสอบโดยดึงเอกสารทั้งหมดที่มีในคอลเลกชัน “ Linuxhint_Col2 ”:

db.Linuxhint_Col2.find ( )

เอาต์พุต

เอาต์พุตแสดงว่ามีการแก้ไขเอกสารหนึ่งรายการที่ตรงตามเงื่อนไข และแทรกฟิลด์ใหม่สำเร็จ

ตัวอย่างที่ 3: อัปเดตหลายฟิลด์ของเอกสารโดยใช้เมธอด “db.collection.updateOne()”
ผู้ใช้สามารถแก้ไขหลายฟิลด์ในเอกสารเดียวได้ ข้อความค้นหาด้านล่างนี้จะแก้ไขนามสกุลและอายุของเอกสารโดยที่ ' ชื่อจริง ” เท่ากับ “ โนอาห์ “:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'โนอาห์' } , { ชุด $ : { 'Model_Name.Last_Name' : 'โด' , 'รุ่น_อายุ' : 23 } } )

เอาต์พุต

แบบสอบถามได้รับการดำเนินการโดยไม่มีข้อผิดพลาดใดๆ

ในการตรวจสอบการเปลี่ยนแปลง ให้ใช้เมธอด “find()” เพื่อดึงเอกสารโดยที่ “ ชื่อจริง ” เท่ากับ “ โนอาห์ :

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'โนอาห์' } )

เอาต์พุต

ผลลัพธ์ส่งคืนเอกสารที่แก้ไขเรียบร้อยแล้ว

ตัวอย่างที่ 4: ใช้เมธอด “db.collection.updateOne()” กับตัวดำเนินการอัปเดต
ดังตัวอย่างที่แล้ว เราใช้ ' ชุด $ ” ปรับปรุงตัวดำเนินการเพื่อแก้ไขค่าใน “ db.collection.updateOne() ' วิธี. ให้เราลองใช้ตัวดำเนินการอัปเดตอื่น “ $inc ” ซึ่งเพิ่มฟิลด์ด้วยจำนวนที่ระบุ

ในแบบสอบถามด้านล่าง วิธีการค้นหาเอกสารโดยที่ ' ชื่อจริง ” เท่ากับ “ เคท ” และเพิ่ม “ 1,000 ' ใน ' Modeling_Fee ” ค่าของฟิลด์:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'เคท' } , { $inc : { การสร้างแบบจำลอง_ค่าธรรมเนียม: 1,000 } } )

เอาต์พุต

ผลลัพธ์ส่งคืนข้อความแสดงความสำเร็จ

หากต้องการดูการเปลี่ยนแปลง ให้ใช้ปุ่ม “ หา() ” วิธีการดึงเอกสารที่ได้รับผลกระทบ:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'เคท' } )

เอาต์พุต

เอาต์พุตแสดงค่าที่แก้ไขของ “ Modeling_Fee '.

ตัวอย่างที่ 5: เพิ่มเอกสารใหม่หากไม่มีอยู่แล้วโดยใช้อาร์กิวเมนต์ “upsert”
อาร์กิวเมนต์ทางเลือกสามารถใช้เพื่อเปลี่ยนลักษณะการทำงานของเมธอดนี้ได้ ตัวเลือกหนึ่งคือ “ ขึ้น ” ซึ่งจะเพิ่มเอกสารใหม่หากไม่มีเอกสารที่มีอยู่ตรงตามเกณฑ์การเลือกที่กำหนดไว้ในแบบสอบถาม

ให้เราลองเพิ่มเอกสารใหม่โดยกำหนดเกณฑ์การคัดเลือกที่ไม่ตรงกับเอกสารที่มีอยู่แล้ว หลังจากนั้นตั้งค่าฟิลด์และเพิ่มตัวเลือก ' ขึ้น ” เป็น “จริง” ดังที่แสดงในคำสั่งด้านล่าง:

db.Linuxhint_Col2.updateOne ( { 'Model_Name.First_Name' : 'เดวิด' } , { ชุด $ : { การสร้างแบบจำลอง_ค่าธรรมเนียม: 10,000 ,  รุ่น_อายุ: 23 , 'Model_Name.Last_Name' : 'สมิธ' } } , { อัพ: จริง } )

เอาต์พุต

ผลลัพธ์แสดงข้อความที่รับทราบว่าเป็นจริง

สุดท้าย ตรวจสอบการแก้ไขโดยเรียกใช้คำสั่งนี้:

db.Linuxhint_Col2.find ( { 'Model_Name.First_Name' : 'เดวิด' } )

เอาต์พุต

ผลลัพธ์แสดงว่าเพิ่มเอกสารใหม่สำเร็จแล้ว

บทสรุป

db.collection.updateOne() วิธีการ ” ใน MongoDB ใช้เพื่ออัปเดตเอกสารแรกที่ตรงตามเกณฑ์การคัดเลือก สามารถแก้ไขฟิลด์เดียวหรือหลายฟิลด์ในเอกสารได้โดยใช้ตัวดำเนินการอัปเดต เช่น “ ชุด $ ' และ ' $inc '. นอกจากนี้ เมธอดนี้ยังยอมรับอาร์กิวเมนต์ทางเลือกเพื่อเปลี่ยนลักษณะการทำงานของเมธอด เช่น “ ขึ้น ” ซึ่งเป็นการเพิ่มเอกสารใหม่ในกรณีที่เกณฑ์การคัดเลือกไม่ตรงกับเอกสารที่มีอยู่ โพสต์นี้ได้กล่าวถึงการใช้งานของ “ db.collection.updateOne() วิธีการ” ใน MongoDB