บทนำ

ในบทนี้เราจะแนะนำตัวดำเนินการการจับคู่ฟิลด์ของอาร์เรย์ในเอกสาร JSON ของ MongoDB

ตัวดำเนินการสอบถามอาร์เรย์ที่รองรับโดย MongoDB

ตัวดำเนินการ คำอธิบาย
$all จับคู่กับค่าอาร์เรย์ทั้งหมดในเงื่อนไขคิวรี่
$elemMatch สำหรับฟิลด์อาร์เรย์ หากค่าใดค่าหนึ่งตรงกับเงื่อนไขทั้งหมดที่กำหนดโดย $elemMatch การทดสอบเป็นจริง
$size จับคู่กับขนาดของอาร์เรย์

$all

{ tags: { $all: [ "ssl" , "security" ] } }

เทียบเท่ากับ

{ $and: [ { tags: "ssl" }, { tags: "security" } ] }

ฟิลด์ tags เป็นค่าอาร์เรย์ และอาร์เรย์ tags มีค่าพร้อมกัน ssl และ security.

$elemMatch

ข้อมูลทดสอบ

ข้อมูลคอลเลกชัน scores ดังนี้:

{ _id: 1, results: [ 82, 85, 88 ] }
{ _id: 2, results: [ 75, 88, 89 ] }

ตัวอย่าง:

db.scores.find(
   { results: { $elemMatch: { $gte: 80, $lt: 85 } } }
)

ข้อมูลที่คืนกลับ:

{ "_id" : 1, "results" : [ 82, 85, 88 ] }

อธิบาย:

  • หากค่าใดค่าหนึ่งในอาร์เรย์ results มากกว่าหรือเท่ากับ 80 และน้อยกว่า 85 เอกสารจะถูกจับคู่สำเร็จ.

$size

จับคู่กับขนาดของอาร์เรย์

db.collection.find( { field: { $size: 2 } } );

อธิบาย:

  • ฟิลด์ field เป็นค่าอาร์เรย์ และหากขนาดของอาร์เรย์เท่ากับ 2 เอกสารจะถูกจับคู่สำเร็จ.