Mongodb: วิธีใช้ตัวดำเนินการ and ($และ) ในการสืบค้น
คุณสามารถใช้ตัวดำเนินการ $and ใน MongoDB เพื่อค้นหาเอกสารที่ตรงกับหลายเกณฑ์
โอเปอเรเตอร์นี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:
db.myCollection.find({ " $and ": [ {" field1 ": " hello "}, {" field2 ": { $gte : 10 }} ] })
ตัวอย่างเฉพาะนี้ค้นหาเอกสารทั้งหมดในคอลเลกชันชื่อ myCollection โดยที่ field1 เท่ากับ “hello” และ field2 มีค่ามากกว่าหรือเท่ากับ 10
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติกับ ทีม เรียกเก็บเงิน ที่มีเอกสารต่อไปนี้:
db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8}) db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 12}) db.teams.insertOne({team: " Spurs ", points: 20, rebounds: 7}) db.teams.insertOne({team: " Spurs ", points: 25, rebounds: 5}) db.teams.insertOne({team: " Spurs ", points: 23, rebounds: 9})
ตัวอย่างที่ 1: ใช้ตัวดำเนินการ AND กับสองฟิลด์
รหัสต่อไปนี้แสดงวิธีการค้นหาเอกสารทั้งหมดในคอลเลกชัน ทีม โดยที่ฟิลด์ “ทีม” เท่ากับ “สเปอร์ส” และค่าของฟิลด์ “คะแนน” มากกว่าหรือเท่ากับ 22:
db.teams.find({ " $and ": [ {" team ": " Spurs "}, {" points ": { $gte : 22 }} ] })
แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 } { _id: ObjectId("6201824afd435937399d6b6d"), team: 'Spurs', points: 23, rebounds: 9 }
โปรดทราบว่าแต่ละเอกสารในเอาต์พุตจะมี “สเปอร์ส” ในช่องทีมและค่าที่มากกว่าหรือเท่ากับ 22 ในช่องคะแนน
ตัวอย่างที่ 2: ใช้ตัวดำเนินการ AND กับช่องมากกว่าสองช่อง
รหัสต่อไปนี้แสดงวิธีค้นหาเอกสารทั้งหมดในคอลเลกชัน ทีม โดยที่ฟิลด์ “ทีม” ไม่เท่ากับ “Mavs” และค่าในฟิลด์ “คะแนน” มากกว่าหรือเท่ากับ 22 และค่าในฟิลด์ “รีบาวน์ » สนามน้อยกว่า 7:
db.teams.find({ " $and ": [ {" team ": { $ne : " Mavs "}}, {" points ": { $gte : 22 }}, {" rebounds ": { $lt : 7 }} ] })
แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("6201824afd435937399d6b6c"), team: 'Spurs', points: 25, rebounds: 5 }
โปรดทราบว่านี่เป็นเอกสารเดียวในคอลเลกชันที่ตรงตามเกณฑ์ทั้งสามข้อ:
- ช่อง “ทีม” ไม่เท่ากับ ” Mavs “
- ช่อง “คะแนน” มีค่ามากกว่าหรือเท่ากับ 22
- ช่อง “รีบาวด์” มีค่าน้อยกว่า 7
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $and ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
MongoDB: วิธีตรวจสอบว่าฟิลด์มีสตริงหรือไม่
MongoDB: วิธีใช้แบบสอบถาม “NO IN”
MongoDB: วิธีค้นหา “ไม่เป็นโมฆะ” ในฟิลด์เฉพาะ