Пространственный запрос MongoDB напротив $ geoIntersect, вне полигона - PullRequest
0 голосов
/ 30 января 2020

Можно ли выполнить запрос, когда точка находится за пределами многоугольника?

Я не совсем уверен, как сформулировать свой вопрос, но я пытаюсь сделать это с помощью моего запроса

Я хочу проверить, находится ли местоположение А (Пикап) внутри, и местоположение B (выпадение) находится за пределами

Я думал об использовании $ne и $not, но я получаю ошибку "unknown top level operator: $not"

    $pickupPoint = [
        'type' => 'Point',
        'coordinates' => [
            floatval($this->item['longitude']),
            floatval($this->item['latitude'])
        ]
    ];
    $dropPoint = [
        'type' => 'Point',
        'coordinates' => [
            floatval($this->item['longitude']),
            floatval($this->item['latitude'])
        ]
    ];

    // Is in pickup, but outside dropoff
    $pickupNotDropoff = [
        '$and' => [
            [
                'Pickup' => [
                    '$geoIntersects' => [
                        '$geometry' => $pickupPoint,
                    ]
                ]
            ],
            [
                '$not' => [
                    'Dropoff' => [
                        '$geoIntersects' => [
                            '$geometry' => $dropPoint,
                        ]
                    ]
                ]
            ]
        ]
    ];

Образец данных

sample

...