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

ตรวจสอบว่าฟิลด์มีค่า null ใน MongoDB

ใช้ $type ตรวจสอบชนิดข้อมูลเป็น Null (BSON Type 10)

ใน MongoDB ค่า null มี BSON Type Code เป็น 10 สามารถใช้โอเปอเรเตอร์ $type เพื่อค้นหาเอกสารที่ฟิลด์มีค่า null ได้อย่างแม่นยำ

ตัวอย่างข้อมูล

> db.nullDemo.insertOne({"FirstName":"Chris"});
> db.nullDemo.insertOne({"FirstName":null});
> db.nullDemo.insertOne({"FirstName":"Robert"});

คิวรี: หาเอกสารที่ FirstName เป็น null

> db.nullDemo.find({ FirstName: { $type: 10 } });

ผลลัพธ์

{ "_id" : ObjectId("5cc68a25ac184d684e3fa271"), "FirstName" : null }

วิธีทางเลือกอื่นๆ

// 1. ใช้ $eq (ตรงตัว) - หา null รวมถึงฟิลด์ที่ไม่มีอยู่
db.nullDemo.find({ FirstName: null });

// 2. ใช้ $type กับ string alias (MongoDB 3.2+)
db.nullDemo.find({ FirstName: { $type: "null" } });

// 3. หาเฉพาะที่มีฟิลด์และเป็น null (ไม่รวมฟิลด์ที่ missing)
db.nullDemo.find({ FirstName: { $in: [null], $exists: true } });

ตาราง BSON Type Codes ที่นิยมใช้

TypeCodeAlias
Double1"double"
String2"string"
Object3"object"
Array4"array"
Boolean8"bool"
Null10"null"
ObjectId7"objectId"