Фильтрация данных в MongoDB с агрегацией - PullRequest
0 голосов
/ 07 марта 2019

У меня есть 2 коллекции в моей базе данных, одна из которых имеет фиксированные значения, значения geoJson для фильтрации элементов в определенной области (MultiPolygon), а другая содержит элементы, содержащие местоположения geoJson (Точки).Я знаю, как фильтровать данные, это будет примерно так:

[{$match: 
    {'location.coordinates':
        {$geoWithin:
            {'$geometry': $$resultFromAnotherQuery}
        }
    }
}]

Этот $$resultFromAnotherQuery уже отформатирован, я просто должен знать, как спасти данные из другого запроса (или части изагрегация), чтобы использовать на этой части.Мне удалось сделать это на nodeJs, без агрегации (один раз запросить базу данных геолокации, получить результат и построить другой запрос с этими данными, снова отправив весь geoJson, просто чтобы получить некоторые элементы в области).

На обычных фильтрах это выглядело бы примерно так:

{
    "location.coordinates": {
        "$geoWithin": {
            "$geometry": {
                "type" : "MultiPolygon",
                "coordinates" : [ "tons of data, thats already on the database,
                but in another collection" ]
            }
        }
    }
}

Я пытаюсь сделать это по соображениям производительности (есть много данных geoJson для перемещения в приложение).

...