2011-07-18 8 views
5

Pour cette requête OU:indices composés pour OU + Trier requête dans MongoDB

db.messages.find({ $or: [ { to: { $ne: null }, from: "xyz" }, { to: "xyz" } ] }).sort({_id: -1}).limit(50) 

avec des indices suivants:

{to:1, from: 1, _id:-1} and {from:1, to:1, _id:-1} 

mongo est toujours en train de faire une analyse complète. J'espérais que Mongo pourrait utiliser ces deux indices et fusionner les résultats. Dois-je diviser cela en deux requêtes (une pour chaque clause OR) et me fusionner? Ou y a-t-il un autre indice qui peut aider?

Répondre

4

Ceci est un problème connu, https://jira.mongodb.org/browse/SERVER-1205, pour lequel vous pouvez voter si c'est très important pour votre cas d'utilisation.

+0

Merci! Votera pour cela. – tarkeshwar

+0

Content de l'avoir trouvé. J'ai passé quelques heures aujourd'hui à penser que je faisais quelque chose de stupide. – Hersha