我在MongoDB中使用地理空间“近”搜索(使用C#驱动程序)在给定经纬度的25英里范围内返回房屋。这将返回按照lat/long排序靠近的房屋,并且效果很好。靠近,排序,然后寻呼查询
但是,我想添加排序(在其他领域,如家庭价格)和分页,这里是我卡住的地方。要正确工作,需要找出哪些房屋位于经纬度25英里以内,然后对这些结果进行分类(比如说基于价格),然后获得10个结果的“页面”。
以下是我到目前为止,它的问题是它需要一页结果(基于接近度排序),然后通过我在“SetSortOrder”中设置的结果排序该页面的10个结果,而不是排序整个结果靠近纬度/长度,因此每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();