sql >> Database >  >> NoSQL >> MongoDB

Mongodb 2.4 2dsphere-query's erg traag (met $geoIntersects)?

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




  1. Mongo verwijdert duplicaten in een reeks objecten op basis van veld

  2. MongoDB Vind waarden die zijn doorgegeven en die niet overeenkomen

  3. Hoe kan ik een $or-query voor MongoDB bouwen met behulp van het Java-stuurprogramma?

  4. Mangoest of vraag