我正在使用 MongoDB 中的地理空间“近”搜索(使用 C# 驱动程序)返回给定纬度/经度 25 英里内的家。这将返回按纬度/经度的接近程度排序的房屋,效果很好。
但是,我想添加排序(在其他领域,如房价)和分页,这就是我卡住的地方。为了正常工作,它需要确定哪些房屋在纬度/经度的 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();