Để truy vấn BinData theo subtype, sử dụng phương thức subtype().
Tạo collection với các _id kiểu BinData khác nhau:
> db.demo249.insertOne({ "_id" : BinData(0,"AQAAAAEBAAVlbl9VSwAAAAAAAAhv") });
{ "acknowledged" : true, "insertedId" : BinData(0,"AQAAAAEBAAVlbl9VSwAAAAAAAAhv") }
> db.demo249.insertOne({"_id" : BinData(4,"CNDF66qIlCY92q1vFAAAAQ==")});
{ "acknowledged" : true, "insertedId" : UUID("08d0c5eb-aa88-9426-3dda-ad6f14000001") }
> db.demo249.insertOne({"_id" : BinData(3,"CNDF66qJ29g92q1vFAAAEw==")});
{ "acknowledged" : true, "insertedId" : BinData(3,"CNDF66qJ29g92q1vFAAAEw==") }
Hiển thị dữ liệu:
> db.demo249.find();
{ "_id" : BinData(0,"AQAAAAEBAAVlbl9VSwAAAAAAAAhv") }
{ "_id" : UUID("08d0c5eb-aa88-9426-3dda-ad6f14000001") }
{ "_id" : BinData(3,"CNDF66qJ29g92q1vFAAAEw==") }
Truy vấn lọc BinData có subtype = 0:
> db.demo249.find(function(){ return this._id.subtype() == 0 });
Kết quả chỉ trả về bản ghi đầu tiên (subtype 0):
{ "_id" : BinData(0,"AQAAAAEBAAVlbl9VSwAAAAAAAAhv") }