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' }
.