MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongodb 2.4 requêtes 2dsphere très lentes (en utilisant $geoIntersects) ?

La requête dans le journal ne correspond pas à la requête que vous exécutez, l'emplacement est différent :

[ 116.3426399230957, 39.95959281921387 ] contre
[ 116.3175773620605, 39.97607231140137 ]

Je ne pense pas non plus que vous ayez reproduit toute votre ligne de journal, car elle mentionne simplement area et non deliver_area .

Cependant, ils ne sont pas vraiment lents . Dans le premier cas, cela a pris 103 ms, ce qui dans certains cas peut arriver lorsque votre serveur effectue d'autres E/S. La deuxième requête a pris 5 ms en tant que explain() la sortie vous l'indique.

Mais le plus frappant, c'est que votre critère principal est id: 59 . Je ne sais pas quel est votre _id le champ est, mais si vous définissez un index sur id alors cela ne devrait même pas avoir à utiliser un 2dsphere index du tout - à moins que vous n'ayez bien sûr de nombreux documents où id=59 . Dans ce cas, vous pourriez être mieux avec une clé composée sur { id: 1, deliver_area: '2dsphere' } .