บทนำ
ในบทนี้เราจะแนะนำตัวดำเนินการการจับคู่ฟิลด์ของอาร์เรย์ในเอกสาร 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 เอกสารจะถูกจับคู่สำเร็จ.