Есть ли что-то вроде обратного геопространственного запроса в MongoDB? - PullRequest
1 голос
/ 03 апреля 2019

У меня есть список достопримечательностей, скажем, ресторанов, театров, садов и т. Д., Сохраненных в базе данных Mongo. Затем у меня есть приложение, которое отслеживает движения пользователя в городе и периодически собирает его. Если я нахожу, что человек находится «рядом» с достопримечательностью, мне нужно отправить ему / ей уведомление. «Близость» для POI - это переменная величина: для ресторана это может быть 100 м, для театра - 200 м, для сада - 20 м и т. Д.

Каждый POI, конечно, сохраняется как отдельный документ. Теперь, есть ли способ запустить запрос на MongoDB с указанием широты / долготы человека и получить список POI поблизости?

Скажите, мои документы выглядят так:

{ "тип": "ресторан", "имя": "Бинни", "loc": [-122.10396, 37.45093], "maxDist": 100 }

{ «тип»: «музей», "имя": "Рипли", "loc": [-122.24546, 37.48251], "maxDist": 500 }

Мне нужно запустить запрос, который дает мне список POI поблизости (не более метра maxDist от POI) для заданного значения широты / долготы, скажем, [-122.12098,37.46001].

Есть ли способ построить запрос для достижения этой цели? Если мне нужно немного изменить структуру документа, это нормально.

Заранее спасибо.

1 Ответ

0 голосов
/ 05 апреля 2019

Используйте $ около .Это позволит вам запрашивать положение пользователя и все местоположения, которые находятся на определенном расстоянии.

...