La query nel registro non corrisponde alla query eseguita poiché la posizione è diversa:
[ 116.3426399230957, 39.95959281921387 ]
vs.[ 116.3175773620605, 39.97607231140137 ]
Inoltre, non penso che tu abbia riprodotto l'intera riga di registro, poiché menziona solo area
e non deliver_area
.
Tuttavia, non sono molto lenti . Nel primo caso, ci sono voluti 103 ms, cosa che in alcuni casi potrebbe accadere perché il tuo server sta eseguendo altri IO. La seconda query ha richiesto 5 ms come explain()
l'output ti dice.
Ma ciò che colpisce di più è che il tuo criterio principale è id: 59
. Non so qual è il tuo _id
campo è, ma se imposti un indice su id
quindi questo non dovrebbe nemmeno usare una 2dsphere
index, a meno che tu non abbia ovviamente molti documenti in cui id=59
. In tal caso, potresti stare meglio con una chiave composta su { id: 1, deliver_area: '2dsphere' }
.