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

Consulta de intervalo lento em um índice multichave


Encontrei minha resposta nesta pergunta:Ordem de $lt e $gt na consulta de intervalo do MongoDB

O meu índice é um índice multichave (em tags ) e estou executando uma consulta de intervalo (em post_time ). Aparentemente , o MongoDB não pode usar ambos os lados do intervalo como filtro neste caso, então ele apenas seleciona o $gte cláusula, que vem primeiro. Como meu limite inferior é o menor post_time valor, o MongoDB começa a escanear todos os objetos.

Infelizmente, esta não é toda a história. Tentando resolver o problema, criei índices não multichave também, mas o MongoDB insistiu em usar o ruim. Isso me fez pensar que o problema estava em outro lugar. Por fim, tive que descartar o índice multikey e criar um sem as tags campo. Tudo está bem agora.