MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consultas do Mongodb 2.4 2dsphere muito lentas (usando $ geoIntersects)?


A consulta no log não corresponde à consulta que você executa, o local é diferente:

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

Eu também não acho que você tenha reproduzido toda a sua linha de log, pois apenas menciona area e não deliver_area .

No entanto, eles não são realmente lentos . No primeiro caso, levou 103ms, o que em alguns casos pode acontecer porque seu servidor está fazendo outro IO. A segunda consulta levou 5ms como explain() saída lhe diz.

Mas o mais impressionante é que seu critério principal é id: 59 . Não sei qual é o seu _id campo é, mas se você definir um índice em id então isso nem deveria ter que usar um 2dsphere index - a menos que você tenha muitos documentos onde id=59 . Nesse caso, seria melhor usar uma chave composta em { id: 1, deliver_area: '2dsphere' } .