Найти документ в MongoDB, используя широту и долготу в поле GeoJSON - PullRequest
0 голосов
/ 09 июня 2019

У моего MongoDB есть этот документ, который представляет ресторан и зону покрытия доставки (GeoJSON):

{
    "id": "1010",
    "name": "Food In Box",
    "coverageArea": {
        "type": "MultiPolygon",
        "coordinates": [
            [
                [
                    [-46.70103, -23.61731],
                    [-46.72086, -23.63517],
                    [-46.7357, -23.62738 ],
                    [-46.74618, -23.60575],
                    [-46.7557, -23.60855],
                    [-46.76999, -23.5987],
                    [-46.7721, -23.58224],
                    [-46.76326, -23.57079],
                    [-46.73433, -23.54613],
                    [-46.70644, -23.56163],
                    [-46.70335, -23.56973],
                    [-46.69073, -23.58475],
                    [-46.70103, -23.61731]
                ]
            ]
        ]
    },
    "address": {
        "type": "Point",
        "coordinates": [
            -46.720875,
            -23.584986
        ]
    }
}

У меня есть точка (lng, lat) и мне нужно проверить, находится ли это местоположение внутризона покрытия ресторана.Я пробовал запрос с $ geoIntersects и $ geoWithin, но он не работает:

db.places.find({coverageArea: {$geoIntersects: {$geometry: {type : "Point",coordinates: [-22.989901, -43.380630]}}}})

У вас есть предложения?

...