MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongodb 2.4 2dsphere query molto lente (usando $geoIntersects)?

La query nel registro non corrisponde alla query eseguita poiché la posizione è diversa:

[ 116.3426399230957, 39.95959281921387 ] vs.
[ 116.3175773620605, 39.97607231140137 ]

Inoltre, non penso che tu abbia riprodotto l'intera riga di registro, poiché menziona solo area e non deliver_area .

Tuttavia, non sono molto lenti . Nel primo caso, ci sono voluti 103 ms, cosa che in alcuni casi potrebbe accadere perché il tuo server sta eseguendo altri IO. La seconda query ha richiesto 5 ms come explain() l'output ti dice.

Ma ciò che colpisce di più è che il tuo criterio principale è id: 59 . Non so qual è il tuo _id campo è, ma se imposti un indice su id quindi questo non dovrebbe nemmeno usare una 2dsphere index, a meno che tu non abbia ovviamente molti documenti in cui id=59 . In tal caso, potresti stare meglio con una chiave composta su { id: 1, deliver_area: '2dsphere' } .