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

removendo scanAndOrder :true no resultado da minha consulta MongoDB


Obrigado pela mensagem no Dex!

Se não for muito tarde aqui em 2013, o índice que recomendo para evitar scanAndOrder aqui é { _id:-1, cl:1, user_id:1 }.

A razão é porque um $lt em _id e um $in em user_id constituem intervalos em vários "buckets" de índice. Um índice de qualquer outra ordem que não a acima significa que esses buckets ainda devem ser classificados juntos para satisfazer uma classificação em _id. Ao colocar _id primeiro, todos os documentos visitados no índice serão ordenados corretamente com antecedência.

Observe que esta é uma pequena melhoria em relação à sugestão de Andre ({ _id:-1, user_id:1, cl:1 }, que também deve evitar scanAndOrder) porque permite a verificação de equivalência direta em cl para remover resultados.

Confira http://blog.mongolab.com/2012/06/cardinal- ins/ para mais detalhes.