Mongodb: วิธีลบฟิลด์ออกจากแต่ละเอกสาร


คุณสามารถใช้วิธีการต่อไปนี้เพื่อลบฟิลด์ออกจากแต่ละเอกสารในคอลเลกชันใน MongoDB:

วิธีที่ 1: ลบฟิลด์

 db.collection.updateMany({}, { $unset : {" field1 ":1}})

วิธีที่ 2: ลบหลายช่อง

 db.collection.updateMany({}, { $unset : {" field1 ":1, " field2 ":1}})

ตัวอย่างต่อไปนี้แสดงวิธีใช้แต่ละวิธีกับ ทีม เรียกเก็บเงินพร้อมเอกสารต่อไปนี้:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })

ตัวอย่างที่ 1: ลบฟิลด์

เราสามารถใช้โค้ดต่อไปนี้เพื่อลบฟิลด์ “points” ออกจากแต่ละเอกสารในคอลเลกชันของเรา:

 db.teams.updateMany({}, { $unset : {" points ":1}})

จากนั้นเราสามารถใช้แบบสอบถามต่อไปนี้เพื่อแสดงแต่ละเอกสารในคอลเลกชันของเรา:

 db.teams.find()

แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:

 { _id: ObjectId("61893b7196cd2ba58ce928f4"),
  team: 'Mavs',
  position: 'Guard' }

{ _id: ObjectId("61893b7196cd2ba58ce928f5"),
  team: 'Spurs',
  position: 'Guard' }

{ _id: ObjectId("61893b7196cd2ba58ce928f6"),
  team: 'Rockets',
  position: 'Center' }

โปรดทราบว่าช่อง “คะแนน” ได้ถูกลบออกจากแต่ละเอกสารแล้ว

ตัวอย่างที่ 2: ลบหลายช่อง

เราสามารถใช้โค้ดต่อไปนี้เพื่อลบฟิลด์ “คะแนน” และ “ตำแหน่ง” ออกจากแต่ละเอกสารในคอลเลกชันของเรา:

 db.teams.updateMany({}, { $unset : {" points ":1, " position ":1}})

จากนั้นเราสามารถใช้แบบสอบถามต่อไปนี้เพื่อแสดงแต่ละเอกสารในคอลเลกชันของเรา:

 db.teams.find()

แบบสอบถามนี้ส่งกลับผลลัพธ์ต่อไปนี้:

 { _id: ObjectId("61893bf896cd2ba58ce928f7"), team: 'Mavs' }
{ _id: ObjectId("61893bf896cd2ba58ce928f8"), team: 'Spurs' }
{ _id: ObjectId("61893bf896cd2ba58ce928f9"), team: 'Rockets' }

โปรดทราบว่าช่อง “คะแนน” และ “ตำแหน่ง” ได้ถูกลบออกจากแต่ละเอกสารแล้ว

หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับ $unset ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:

MongoDB: วิธีเพิ่มฟิลด์ใหม่ให้กับคอลเลกชัน
MongoDB: วิธีจัดกลุ่มตามและนับ
MongoDB: วิธีจัดกลุ่มตามหลายฟิลด์

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *