Zapytanie w dzienniku nie jest zgodne z zapytaniem, które uruchomiłeś, lokalizacja jest inna:
[ 116.3426399230957, 39.95959281921387 ]
vs.[ 116.3175773620605, 39.97607231140137 ]
Nie sądzę też, że odtworzyłeś całą linię dziennika, ponieważ po prostu wspomina o area
a nie deliver_area
.
Jednak nie są naprawdę wolne . W pierwszym przypadku zajęło to 103 ms, co w niektórych przypadkach może się zdarzyć, gdy serwer wykonuje inne operacje IO. Drugie zapytanie zajęło 5 ms jako explain()
wyjście mówi ci.
Ale najbardziej uderzające jest to, że głównym kryterium jest id: 59
. Nie wiem, jaki jest Twój _id
pole jest, ale jeśli ustawisz indeks na id
wtedy nie powinno to nawet wymagać użycia 2dsphere
indeks w ogóle — chyba że masz wiele dokumentów, w których id=59
. W takim przypadku lepiej byłoby użyć klucza złożonego na { id: 1, deliver_area: '2dsphere' }
.