Mongodb агрегированный запрос для расчета расстояния между 2 точками - PullRequest
0 голосов
/ 26 февраля 2019

Я новичок в mongodb.Мне нужно вычислить расстояние между предыдущим адресом и следующим адресом в том же месте и добавить результаты, но мне нужно отфильтровать документы перед вычислением расстояний, поскольку previous-address и next-address фактически не являются частьюдокумент, мне нужно динамически добавлять их в соответствии с некоторыми условиями.У меня есть документы, которые выглядят так:

{
"user_id" : 2274,
"preparation_time" : 86400000,
"prev_booking" : null,
"next_booking" : {
    "id" : 1310905,
    "location" : {
        "type" : "Point",
        "coordinates" : [ 
            55.2353495, 
            25.1627054
        ]
    }
}

Так что мне нужно добавить prev-address и next-address, и там значения будут зависеть от prev-booking и next-booking с другими условиями, и тогда я будуиспользуйте их для расчета расстояний.Но проблема в том, что $geoNear должен быть на первом этапе конвейера, но это не возможно в моем случае, какие-либо предложения здесь?

1 Ответ

0 голосов
/ 26 февраля 2019

MongoDB поддерживает двухмерные индексы и геопространственные запросы.Сначала проверьте 2d индексы , чтобы узнать, как правильно структурировать индекс.

После этого вы можете вычислить евклидово расстояние на 2-й плоскости с запросами.

С уважением и наилучшими пожеланиями в будущем развитии Endeavors

...