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

วิธีดึงค่า Subarray ใน MongoDB ด้วย $elemMatch Projection

ใช้ตัวดำเนินการ Projection $elemMatch เพื่อดึงเฉพาะองค์ประกอบในอาร์เรย์ที่ตรงเงื่อนไข

ตัวอย่างการใช้งาน

สร้างคอลเลกชันพร้อมข้อมูลโครงการและขนาดทีม:

แสดงเอกสารทั้งหมด:

{ "_id" : 101, "clientName" : "Larry", "ClientDetails" : [
    { "ClientProjectName" : "Online Game", "DeveloperTeamSize" : 10 },
    { "ClientProjectName" : "Pig Dice Game", "DeveloperTeamSize" : 12 },
    { "ClientProjectName" : "Web Student Tracker", "DeveloperTeamSize" : 11 }
] }

ดึงเฉพาะ Subarray ที่ ProjectName = "Pig Dice Game"

{ "ClientDetails" : [
    { "ClientProjectName" : "Pig Dice Game", "DeveloperTeamSize" : 12 }
] }

ความแตกต่าง:

  • $ (Positional) - คืนค่าองค์ประกอบแรกที่ตรงเงื่อนไขใน Query
  • $elemMatch (Projection) - คืนค่าองค์ประกอบแรกที่ตรงเงื่อนไขใน Projection เอง (ใช้ได้แม้ Query ไม่ได้ระบุเงื่อนไขในอาร์เรย์)