เมธอด “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.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()”
ผู้ใช้สามารถแก้ไขหลายฟิลด์ในเอกสารเดียวได้ ข้อความค้นหาด้านล่างนี้จะแก้ไขนามสกุลและอายุของเอกสารโดยที่ ' ชื่อจริง ” เท่ากับ “ โนอาห์ “:
เอาต์พุต
แบบสอบถามได้รับการดำเนินการโดยไม่มีข้อผิดพลาดใดๆ
ในการตรวจสอบการเปลี่ยนแปลง ให้ใช้เมธอด “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