2016-12-09 2 views
1

У меня есть коллекция под названием рестораны .., а также я отформатировал в GeoJSON, и я попытался запросить следующим образомЗапрос Местонахождение с километровым радиусом в Монгобе?

db.restaurants.find({ location: 
    { $geoWithin: 
     { $centerSphere: [ [ -73.93414657, 40.82302903 ], 5/3963.2 ] } } }) 

я упоминал радиус 5/3963.2 (расчет в милях) .. но мне нужен радиус расстояние в километр, как { $centerSphere: [ [ -73.93414657, 40.82302903 ], 5] }

мне нужно упомянутый радиус в километр

Как это сделать?

ответ

2

MongoDB ожидает значений в радианах.

Чтобы преобразовать расстояние в радианах, просто разделите значение расстояния до радиуса сферы (земля), где:

3963,2 является радиус Земли в милях.

6378.1 - радиус земли в км.

db.restaurants.find({ location: 
    { $geoWithin: 
     { $centerSphere: [ [ -73.93414657, 40.82302903 ], 5/6378.1 ] } } }) 
+0

если вы не мое PLS объяснить этот расчет .. что значение [email protected] Zaharie –

+0

, а также у меня есть еще сомнения .. я использовал Монго компас .. как сделать этот же запрос в Монго компас @ Мистер. Sergiu Zaharie –

+0

Для этого вы должны задать еще один вопрос. – sergiuz

Смежные вопросы