У меня есть коллекция «машина» с документом
{ "_id" : "ac9d1db9-6a0d-47c6-97d3-a613c8dd0031", "pin" : { "machine":"test1", "position" : [ -1.5716, 54.7732 ] } } Note: -1.5716 is lng and 54.7732 is lat
Я создал 2dsphere индекс на документе
db.machine.createIndex({ 'pin.position' : "2dsphere" })
Стараюсь с 2 разными версиями запроса (только разница в запросе - это поле ближнего поля на этапе геоинформационного трубопровода)
Запрос 1:
db.machine.aggregate( [ { "$geoNear":{ "near": [-0.2129092,51.5031594], "limit":100, "maxDistance":500*1000, "distanceField": "dist.calculated", "includeLocs": "dist.location", "distanceMultiplier":1/1000, "spherical": true } } ] ) Note: -0.2129092 is lng and 51.5031594 is lat
Query 2
db.machine.aggregate( [ { "$geoNear":{ "near": { type: "Point", coordinates: [-0.2129092,51.5031594] }, "limit":100, "maxDistance":500*1000, "distanceField": "dist.calculated", "includeLocs": "dist.location", "distanceMultiplier":1/1000, "spherical": true } } ] ) Note: -0.2129092 is lng and 51.5031594 is lat
запроса 1 возвращает мне документ и предусматривает, что этот документ является 5.88161133560063e-05 Kms от поиска координат
Запрос 2 возвращает мне документ и предусматривает, что этот документ находится на расстоянии 375,135052595944 км от поисковых координат
Я перекрестно проверить расстояние между этими LNG/лат на сайте http://andrew.hedges.name/experiments/haversine/ и увидеть, что расстояние между документом и поиска координат составляет около 374.835 Kms
кажется Query 2 является обеспечение правильного результата, но я не уверен, в чем разница между Query 1 и Query 2, и если я использую его неправильно.
Пожалуйста посоветуйте