De zoekopdracht in het logboek komt niet overeen met de zoekopdracht die u uitvoert, de locatie is anders:
[ 116.3426399230957, 39.95959281921387 ]
vs.[ 116.3175773620605, 39.97607231140137 ]
Ik denk ook niet dat je je hele logregel hebt gereproduceerd, omdat er alleen maar area
wordt genoemd en niet deliver_area
.
Ze zijn echter niet echt traag . In het eerste geval duurde het 103 ms, wat in sommige gevallen kan gebeuren als uw server andere IO uitvoert. De tweede query duurde 5ms als de explain()
output vertelt het je.
Maar het meest opvallende is dat uw belangrijkste criterium id: 59
. is . Ik weet niet wat je _id
veld is, maar als u een index instelt op id
dan zou dit niet eens een 2dsphere
moeten gebruiken index helemaal niet — tenzij je natuurlijk veel documenten hebt waar id=59
. In dat geval bent u wellicht beter af met een samengestelde sleutel op { id: 1, deliver_area: '2dsphere' }
.