Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ค้นหาเอกสารที่มีฟิลด์เฉพาะ (Property Exists) ใน MongoDB ด้วย $ne

ใช้ $ne: null เพื่อค้นหาเอกสารที่มีฟิลด์อยู่และค่าไม่เป็น null (แตกต่างจาก $exists: true ที่คืนค่า true แม้ค่าเป็น null)

ตัวอย่างการใช้งาน

สร้างคอลเลกชันพร้อมข้อมูล (มี FirstName เป็น null บ้าง):

แสดงเอกสารทั้งหมด:

{ "_id" : ObjectId("5cbaf7af7219729fde21ddb5"), "FirstName" : "Larry", "Age" : 23 }
{ "_id" : ObjectId("5cbaf7b97219729fde21ddb6"), "FirstName" : null, "Age" : 21 }
{ "_id" : ObjectId("5cbaf7c57219729fde21ddb7"), "FirstName" : "John", "Age" : 22 }
{ "_id" : ObjectId("5cbaf7d07219729fde21ddb8"), "FirstName" : null, "Age" : 25 }
{ "_id" : ObjectId("5cbaf7df7219729fde21ddb9"), "FirstName" : "David", "Age" : 20 }

ค้นหาเอกสารที่ FirstName ไม่เป็น null (มีค่าจริง)

{ "_id" : ObjectId("5cbaf7af7219729fde21ddb5"), "FirstName" : "Larry", "Age" : 23 }
{ "_id" : ObjectId("5cbaf7c57219729fde21ddb7"), "FirstName" : "John", "Age" : 22 }
{ "_id" : ObjectId("5cbaf7df7219729fde21ddb9"), "FirstName" : "David", "Age" : 20 }

ความแตกต่างสำคัญ:

  • {field: {$ne: null}} - ฟิลด์มีอยู่ และค่าไม่เป็น null
  • {field: {$exists: true}} - ฟิลด์มีอยู่ (รวมค่า null ด้วย)