sql >> Base de Datos >  >> NoSQL >> MongoDB

Consulta de rango lento en un índice multiclave

Encontré mi respuesta en esta pregunta:Orden de $lt y $gt en la consulta de rango de MongoDB

Mi índice es un índice multiclave (en tags ) y estoy ejecutando una consulta de rango (en post_time ). Aparentemente , MongoDB no puede usar ambos lados del rango como filtro en este caso, por lo que solo elige el $gte cláusula, la que viene primero. Como mi límite inferior resulta ser el post_time más bajo valor, MongoDB comienza a escanear todos los objetos.

Desafortunadamente, esta no es toda la historia. Tratando de resolver el problema, también creé índices que no son multiclave, pero MongoDB insistió en usar el malo. Eso me hizo pensar que el problema estaba en otra parte. Finalmente, tuve que eliminar el índice multiclave y crear uno sin las tags campo. Todo está bien ahora.