2

假设我收集了具有指定经度和纬度的文档。

type is specified:

{
    id: ObjectId,
    location : {double, double}, /*array, that contains
                                   just longitude and latitude*/
    someUsefulData : string
}

我需要获取位于某个位置周围 50 英里区域内的所有文件。为此,我正在使用这样的方法:

// set GetNear() options
var options = new GeoNearOptionsBuilder()
    .SetMaxDistance(50) // meens 50 miles
    .SetSpherical(true);

// create conditions query
var conditions = Query.NE("someUsefulData ", $ne : {null});

// execute GetNear()
var geoNearResult = collection
    .GeoNear(conditions, longitude, latitude, limit, options);

这部分效果很好。

但。

我需要从一开始就跳过一些结果——对于经典的分页实现。也许,有人知道如何做到这一点,考虑到 GeoNear() 返回 GeoNearResult - 这不是 MongoCursor,所以我不能使用 SetSkip(20),例如。

4

1 回答 1

1

我建议将限制设置为 limit+20 并跳过应用程序中的前 20 个文档。此外,您可以投票给https://jira.mongodb.org/browse/SERVER-3925,这将为 geoNear 命令添加一个原生跳过选项。

于 2012-06-28T16:31:50.643 回答