Để kiểm tra hai giá trị bên ngoài, sử dụng $type với biểu thức điều kiện. Tạo collection:
> db.demo211.insertOne({id:101,"Name":"Chris"});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e298203d395bdc21346fa") }
> db.demo211.insertOne({id:102,"Name":null});
{ "acknowledged" : true, "insertedId" : ObjectId("5e3e2a5403d395bdc21346fb") }
Hiển thị tài liệu:
> db.demo211.find();
Kết quả:
Kiểm tra nếu v1 === v2 (cả hai = 200) thì tìm Name kiểu string (type 2), ngược lại tìm null (type 10):
> v1=200; v2=200; > db.demo211.find({Name: 'Chris', Name: { $type: 1 + (v1 === v2) }});Kết quả - vì v1===v2=true (1), 1+1=2 (type string), khớp "Chris":
Giải thích:
$typenhận mã loại BSON: 1=double, 2=string, 10=null. Biểu thức1 + (v1 === v2)đánh giá thành 2 khi true (string), 1 khi false (double). Đây là kỹ thuật nâng cao, ít dùng trong thực tế.