MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

MongoDB não está usando meu índice


Os índices regulares do mongodb usam tanto o valor do campo quanto o tipo para construir a árvore.

Consultas como $empty: true ou $ne: null não tem um parâmetro de nenhum tipo e não pode se beneficiar de tais índices. É um caso especial e requer um índice esparso especial .

Se seu example@sqldat.com_1 índice é criado como:
db.getCollection('logs.res').createIndex(
    {
        "timeStamp" : -1,
        "example@sqldat.com" : 1
    },
    { sparse: true }
)

Ele deve suportar melhor sua consulta. Caso contrário, não há muita diferença entre example@sqldat.com_1 e timeStamp_1_module_1_etc já que o único primeiro campo está sendo usado.