Mongodb: วิธีใช้แบบสอบถาม "not in"
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อค้นหาเอกสารทั้งหมดที่มีค่าของฟิลด์ใดฟิลด์หนึ่งไม่อยู่ในรายการค่าที่กำหนด:
db.collection.find({field1: { $nin : [" value1 ", " value2 ", " value3 "]}})
แบบสอบถามเฉพาะนี้จะค้นหาเอกสารทั้งหมดที่ค่าของ ฟิลด์ 1 ไม่เท่ากับ value1, value2 หรือ value3
ตัวอย่างต่อไปนี้แสดงวิธีใช้ไวยากรณ์นี้ในทางปฏิบัติ
ตัวอย่างที่ 1: ข้อความค้นหา “NOT IN” ที่มีค่า
สมมติว่าเรามี ทีมงาน เรียกเก็บเงินพร้อมเอกสารดังต่อไปนี้:
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 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
เราสามารถใช้โค้ดต่อไปนี้เพื่อค้นหาเอกสารทั้งหมดที่ช่อง “ทีม” ไม่เท่ากับค่า “Rockets”:
db.teams.find({team: { $nin : [" Rockets "]}})
แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("619527e467d6742f66749b72"), team: 'Cavs', position: 'Guard', points: 33 } { _id: ObjectId("619527e467d6742f66749b6e"), team: 'Mavs', position: 'Guard', points: 31 } { _id: ObjectId("619527e467d6742f66749b6f"), team: 'Mavs', position: 'Guard', points: 22 }
โปรดทราบว่าเอกสารเดียวที่ส่งคืนคือเอกสารที่ช่อง “ทีม” ไม่เท่ากับ “Rockets”
ตัวอย่างที่ 2: ข้อความค้นหา “NON IN” พร้อมรายการค่า
สมมติว่าเรามี ทีมงาน เรียกเก็บเงินพร้อมเอกสารดังต่อไปนี้:
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 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
เราสามารถใช้โค้ดต่อไปนี้เพื่อค้นหาเอกสารทั้งหมดที่ช่อง “ทีม” ไม่เท่ากับค่า “Rockets” หรือ “Cavs”:
db.teams.find({team: { $nin : [" Rockets ", " Cavs "]}})
แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:
{ _id: ObjectId("619527e467d6742f66749b6e"), team: 'Mavs', position: 'Guard', points: 31 } { _id: ObjectId("619527e467d6742f66749b6f"), team: 'Mavs', position: 'Guard', points: 22 }
โปรดทราบว่าเอกสารเดียวที่ส่งคืนคือเอกสารที่ช่อง “ทีม” ไม่เท่ากับ “Rockets” หรือ “Cavs”
หมายเหตุ : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $nin ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:
MongoDB: วิธีสืบค้นด้วยนิพจน์ทั่วไป “Like”
MongoDB: วิธีตรวจสอบว่าฟิลด์มีสตริงหรือไม่
MongoDB: วิธีเพิ่มฟิลด์ใหม่ให้กับคอลเลกชัน
MongoDB: วิธีลบฟิลด์ออกจากแต่ละเอกสาร