Mongodb: วิธีใช้ “ไม่เท่ากัน” ในแบบสอบถาม


คุณสามารถใช้ตัวดำเนินการ $ne (หมายถึง “ไม่เท่ากัน”) ใน MongoDB เพื่อค้นหาเอกสารที่ฟิลด์ไม่เท่ากับค่าที่กำหนด

โอเปอเรเตอร์นี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:

 db.myCollection.find({' team ': { $ne : " Mavs "}})

ตัวอย่างนี้ค้นหาเอกสารทั้งหมดในคอลเลกชันชื่อ myCollection โดยที่ฟิลด์ ทีม ไม่เท่ากับ “Mavs”

คุณยังสามารถใช้ตัวดำเนินการ $nin (ซึ่งหมายถึง “ไม่อยู่ใน”) เพื่อค้นหาเอกสารที่ฟิลด์ไม่เท่ากับค่าใดๆ ในรายการ

โอเปอเรเตอร์นี้ใช้ไวยากรณ์พื้นฐานต่อไปนี้:

 db.myCollection.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})

ตัวอย่างนี้ค้นหาเอกสารทั้งหมดในคอลเลกชันชื่อ myCollection โดยที่ฟิลด์ ทีม ไม่เท่ากับ “Mavs”, “Cavs” หรือ “Spurs”

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ ทีม เรียกเก็บเงินโดยมีเอกสารดังต่อไปนี้:

 db.teams.insertOne({team: " Mavs ", points: 30, rebounds: 8})
db.teams.insertOne({team: " Spurs ", points: 35, rebounds: 12})
db.teams.insertOne({team: " Rockets ", points: 20, rebounds: 7})
db.teams.insertOne({team: " Warriors ", points: 25, rebounds: 5})
db.teams.insertOne({team: " Cavs ", points: 23, rebounds: 9})

ตัวอย่างที่ 1: แบบสอบถาม “แตกต่าง”

รหัสต่อไปนี้แสดงวิธีค้นหาเอกสารทั้งหมดในคอลเลกชัน ทีม โดยที่ฟิลด์ “ทีม” ไม่เท่ากับ “Mavs”:

 db.teams.find({' team ': { $ne : " Mavs "}})

แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:

 { _id: ObjectId("6203ec0e1e95a9885e1e7658"),
  team: 'Cavs',
  points: 23,
  rebounds: 9 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7655"),
  team: 'Spurs',
  points: 35,
  rebounds: 12 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }

โปรดทราบว่าเอกสารทุกฉบับในคอลเลกชัน ทีม จะถูกส่งกลับโดยที่ฟิลด์ ทีม ไม่เท่ากับ “Mavs”

หมายเหตุ : ตัวดำเนินการ $ne จะคำนึงถึงขนาดตัวพิมพ์

ตัวอย่างที่ 2: แบบสอบถาม “ไม่อยู่ใน”

รหัสต่อไปนี้แสดงวิธีค้นหาเอกสารทั้งหมดในคอลเลกชัน ทีม โดยที่ฟิลด์ ทีม ไม่เท่ากับ “Mavs”, “Cavs” หรือ “Spurs”:

 db.teams.find({' team ': { $nin : [" Mavs ", " Cavs ", " Spurs "]}})

แบบสอบถามนี้ส่งคืนเอกสารต่อไปนี้:

 { _id: ObjectId("6203ec0e1e95a9885e1e7656"),
  team: 'Rockets',
  points: 20,
  rebounds: 7 }
{ _id: ObjectId("6203ec0e1e95a9885e1e7657"),
  team: 'Warriors',
  points: 25,
  rebounds: 5 }

โปรดทราบว่าแต่ละเอกสารในคอลเลกชัน ทีม จะถูกส่งกลับเมื่อสนาม ทีม ไม่เท่ากับ “Mavs”, “Cavs” หรือ “Spurs”

หมายเหตุ #1 : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $ne ได้ที่นี่

หมายเหตุ #2 : คุณสามารถค้นหาเอกสารฉบับเต็มสำหรับฟังก์ชัน $nin ได้ที่นี่

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน MongoDB:

MongoDB: วิธีตรวจสอบว่าฟิลด์มีสตริงหรือไม่
MongoDB: วิธีค้นหา “ไม่เป็นโมฆะ” ในฟิลด์เฉพาะ
MongoDB: วิธีแทนที่สตริง

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *