5

使用 MongoDB,我正在查询距离纬度/经度 25 英里以内的房屋。

我第一次尝试使用 near 命令,如下所示:

var near = Query.Near("Coordinates", coordinates.Latitude, coordinates.Longitude, find.GetRadiansAway(), false);
var query = Collection().Find(near);
var listings = query.ToList();

near 的问题是它只返回 100 个列表,而我想返回坐标 25 英里内的所有列表。

我的下一次尝试是在以下范围内使用:

var within = Query.WithinCircle("Coordinates", coordinates.Latitude, coordinates.Longitude, find.GetRadiansAway(), false);
var query = Collection().Find(within);
var listings = query.ToList();

Within 返回 25 英里内的所有列表,这很棒,但是它不会像 near 那样根据它们与中心坐标的接近程度对它们进行排序。

所以我的问题是,我如何才能两全其美?如何获取 25 英里范围内的所有房源并按与中心坐标的接近程度对它们进行排序?

4

1 回答 1

11

地理空间$near查询将默认设置limit()为 100 个结果。您应该能够通过设置新的limit().

虽然“近”查询按距离排序,但“范围内”不是(尽管“范围内”没有默认限制)。

于 2011-03-30T22:04:40.483 回答