Frågan i loggen matchar inte frågan som du kör som, platsen är annorlunda:
[ 116.3426399230957, 39.95959281921387 ]
kontra[ 116.3175773620605, 39.97607231140137 ]
Jag tror inte heller att du har reproducerat hela din loggrad, eftersom den bara nämner area
och inte deliver_area
.
Men de är inte riktigt långsamma . I det första fallet tog det 103ms, vilket i vissa fall kan hända eftersom din server gör annan IO. Den andra frågan tog 5ms som explain()
utdata berättar.
Men det som är mest slående är att ditt huvudkriterium är id: 59
. Jag vet inte vad ditt _id
har fältet är, men om du ställer in ett index på id
då ska detta inte ens behöva använda en 2dsphere
index alls — såvida du inte har såklart många dokument där id=59
. I så fall kan du ha det bättre med en sammansatt nyckel på { id: 1, deliver_area: '2dsphere' }
.