Bạn có thể chỉ cần lưu trữ các kiểu và kiểu con trong một mảng như thế này:
doc1 = {
"_type": ["animal"],
"name": ...
}
doc2 = {
"_type": ["animal","dog"],
"name": ...,
"barkFile": ...
}
doc3 = {
"_type": ["animal","dog","poodle"],
"name": ...,
"barkFile": ...,
"haircut": ...
}
Sử dụng mô hình này, truy vấn db.data.find({_type:"dog"})
trả về cả doc2 và doc3.