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

Configuração do índice MongoDB 2.6, consulta usando $or, $in, com limite e classificação


Não tenho certeza se isso é um bug no MongoDB 2.6, mas você pode dar uma olhada em este artigo sobre a criação do índice.

Então, seguindo esse conselho, você pode tentar com esses índices:
$col->ensureIndex(array('owner' => 1, 'ca' => -1));
$col->ensureIndex(array('ca' => -1, 'owner' => 1, 'perm.type' => 1));
$col->ensureIndex(array('perm.list' => 1, 'ca' => -1, 'owner' => 1));

Editar:

Da sua explicação, se você estiver testando em pequenos conjuntos de dados, a coleta completa é rápida porque o MongoDB não precisa passar por muitos documentos. Você deve tentar fazer um teste com, por exemplo, 10.000 documentos para ver uma diferença real. Os valores dos seus campos nos índices devem ser diferentes o suficiente para garantir a seletividade do índice para suas consultas (por exemplo, nem todos os documentos são do mesmo proprietário).