Dotaz v protokolu neodpovídá dotazu, který jste spustili, umístění je jiné:
[ 116.3426399230957, 39.95959281921387 ]
vs.[ 116.3175773620605, 39.97607231140137 ]
Také si nemyslím, že jste reprodukovali celý svůj řádek protokolu, protože zmiňuje pouze area
a ne deliver_area
.
Nejsou však skutečně pomalé . V prvním případě to trvalo 103 ms, což se v některých případech může stát, protože váš server provádí jiné IO. Druhý dotaz trval 5 ms jako explain()
výstup vám řekne.
Nejpozoruhodnější však je, že vaším hlavním kritériem je id: 59
. Nevím, jaké je vaše _id
pole je, ale pokud nastavíte index na id
pak by to ani nemělo používat 2dsphere
index vůbec — pokud samozřejmě nemáte mnoho dokumentů s id=59
. V takovém případě byste mohli být lepší se složeným klíčem na { id: 1, deliver_area: '2dsphere' }
.