Подтвердить что ты не робот

Единицы для использования для maxdistance и MongoDB?

Я пытаюсь разобраться с MongoDB и геопространственными поисками. В основном, я хочу, чтобы пользователи могли запрашивать документы (изображения), которые снимаются на заданном расстоянии от текущего местоположения пользователей. Таким образом, я ищу все изображения, снятые в пределах 1 км от места, где он стоит. Я пытаюсь использовать приведенный ниже пример, но я не знаю, как установить значение maxdistance.

db.places.find({ loc : { $near : [50,50] , $maxDistance : 5 }})

Итак, мой вопрос - это то, что я устанавливаю как maxdistance, если я ищу документы в радиусе 1 км?

Я полностью застрял здесь.

4b9b3361

Ответ 1

Чтобы использовать запросы mongodb $near с границами km, вам нужно преобразовать значение радиуса в km. По умолчанию mongodb $near принимает $maxDistance как radius.

Преобразовать расстояние на 111.12 (один градус приблизительно 111.12 километров) при использовании километра или оставить расстояние, поскольку оно находится на уровне степени

на ваш вопрос

что я устанавливаю как maxdistance, если я ищу документы в пределах Радиус 1 км?

вы можете использовать этот

   db.places.find( { loc : { $near : [50,50] , $maxDistance : 1/111.12 } } )

Я ответил, что здесь mongo геопространственные функции здесь подробно. Вы можете проверить

Ответ 2

Начиная с версии 2.4 MongoDB вы можете указать радиус непосредственно в метрах как значение $maxDistance, например:

db.<collection>.find({loc: {$near : 
                               {$geometry : 
                                   {
                                    type: 'Point', 
                                    coordinates: [<longitude> , <latitude>]       
                                   }
                               }, 
                               $maxDistance: 10*100 
                           }
                     });