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

คืนค่าระเบียนที่อายุเป็น Integer ใน MongoDB


ใช้ $type เพื่อกรองตามชนิดข้อมูล BSON

Operator $type เลือกเอกสารที่ฟิลด์มีชนิดข้อมูลตรงตามที่ระบุ (BSON type) เช่น "number", "string", "object", "array"

ตัวอย่างข้อมูล (ผสม String และ Number)

> db.demo470.insertOne({ "Age": 23 });
> db.demo470.insertOne({ "Age": "Unknown" });
> db.demo470.insertOne({ "Age": 24 });
> db.demo470.insertOne({ "Age": "Not provided" });

Query หาเฉพาะ Age ที่เป็น Number

> db.demo470.find({ 'Age': { $type: "number" } });

ผลลัพธ์

{ "_id": ObjectId(...), "Age": 23 }
{ "_id": ObjectId(...), "Age": 24 }

BSON Type Aliases ที่ใช้ได้

AliasBSON Typeตัวอย่าง
"double" / "number"11.5, 10
"string"2"hello"
"object"3{ a: 1 }
"array"4[1, 2, 3]
"binData"5Binary data
"objectId"7ObjectId()
"bool"8true/false
"date"9ISODate()
"null"10null
"regex"11/pattern/
"int" / "long"16/18Int32, Int64
"decimal"19Decimal128

การใช้งานร่วมกับ $or

// หา Age ที่เป็น int หรือ long
db.demo470.find({ Age: { $type: ["int", "long"] } });

// หา Age ที่เป็น number (double, int, long)
db.demo470.find({ Age: { $type: "number" } });