Я использую геопространственный поиск "в ближнем" в MongoDB (используя драйвер C #), чтобы вернуться домой в пределах 25 миль от заданного широты / долготы. Это возвращает дома, отсортированные по близости к широте / долготе и прекрасно работает.
Тем не менее, я хочу добавить сортировку (в других областях, таких как цены на жилье) и подкачку страниц, и вот где я застреваю. Для правильной работы необходимо выяснить, какие дома находятся в пределах 25 миль от широты / долготы, затем отсортировать эти результаты (скажем, на основе цены), а затем взять «страницу» из 10 результатов.
Ниже приведено то, что у меня есть, проблема в том, что он берет страницу результатов (на основе сортировки по близости), а затем сортирует эту страницу из 10 результатов по тому, что я установил в «SetSortOrder», а не сортирует всю результат рядом с широтой / долготой, поэтому каждая страница из 10 результатов сортируется сама по себе.
var coordinates = find.GetCoordinates();
var near = Query.Near("Coordinates", coordinates.Latitude,
coordinates.Longitude,
find.GetRadiansAway(), false);
var query = Collection().Find(near);
query.Skip = find.GetSkip();
query.Limit = find.GetLimit();
query.SetSortOrder(new string[] { "Price" });
var results = query.ToArray();