Лучший способ сохранить заданные значения lat, long и address в mongo db, чтобы быстро найти адрес для заданного значения lat, long - PullRequest
0 голосов
/ 21 мая 2018

Я ломаю голову вокруг последних двух дней, чтобы понять это правильно.У меня есть живой набор данных около 20 миллионов лат, длинных и адрес.Теперь я хочу сохранить их в MongoDB таким образом, чтобы запрос, чтобы найти адрес для данного lat, long - это быстрый.Вот некоторые решения, которые я нашел на MongoDB:

  1. index loc с 2dsphere.

но насколько хорош запрос поиска для точного соответствия широты, длины?

Если не использовать 2dsphere, то каков наилучший способ хранения данных lat, long, чтобы сохранить минимальный размер хранилища и индекса и получить производительность.

1 Ответ

0 голосов
/ 22 мая 2018

MongoDB использует GeoHash и B-дерево для своих индексов 2dsphere, что обеспечивает очень быстрый поиск областей с использованием $near и $geoNear;вы можете использовать $minDistance и $maxDistance из 0 для точных совпадений, но вы можете использовать $maxDistance из 1, если вас беспокоят проблемы, связанные с точностью с плавающей запятой.Во многих случаях может быть важно limit(1) ваши результаты, если они плотно распределены в некоторых местах, хотя для адресов улиц это не должно быть проблемой.На моем компьютере разработчика я могу запросить коллекцию с 40 миллионами полигонов, общим объемом почти 50 ГБ данных, за 300-400 мс.

...