Các chỉ mục mongodb thông thường sử dụng cả giá trị trường và kiểu để xây dựng cây.
Các truy vấn như $empty: true
hoặc $ne: null
không có tham số thuộc bất kỳ loại nào và không thể hưởng lợi từ các chỉ mục đó. Đây là một trường hợp đặc biệt và yêu cầu một chỉ mục thưa thớt
đặc biệt .
Nếu [email protected]_1
chỉ mục được tạo dưới dạng:
db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"[email protected]" : 1
},
{ sparse: true }
)
Nó sẽ hỗ trợ tốt nhất cho truy vấn của bạn. Nếu không, không có nhiều sự khác biệt giữa [email protected]_1
và timeStamp_1_module_1_etc
vì trường đầu tiên duy nhất đang được sử dụng.