Агрегация MongoDB - сортировка по расстоянию внутри конвейера агрегации - PullRequest
0 голосов
/ 24 мая 2019

Мне нужно выполнить поиск по тексту и вернуть результаты, отсортированные по расстоянию.

Первое решение состояло в том, чтобы выполнить запрос $ geoNear, а затем выполнить $ match, чтобы получить необходимые результаты.Это решение проблематично, потому что мой этап $ geoNear имеет предел результатов, и в этом случае элементы, которые находятся далеко от точки ввода, не будут отображаться, даже если они соответствуют этапу $ match.

Если я выполню $ matchНа первом этапе у меня проблема с сортировкой по расстоянию.$ GeoNear не является опцией, так как он должен быть на первом этапе по определению.Я могу самостоятельно рассчитать расстояние и отсортировать результаты, но это не сработает, поскольку я делаю пейджинг.

  • Примечание: мое объединение выполняет поиск в другой таблице, а затем выполняет дополнительный поиск, прежде чем я получу результаты, которые необходимо отсортировать

Кажетсямне как курица и проблема с яйцом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...