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 example@sqldat.com_1 chỉ mục được tạo dưới dạng:
db.getCollection('logs.res').createIndex(
{
"timeStamp" : -1,
"example@sqldat.com" : 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 example@sqldat.com_1 và timeStamp_1_module_1_etc vì trường đầu tiên duy nhất đang được sử dụng.