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' } .