有没有办法在GeoNear()MongoDB方法中跳过一些文件?

时间:2012-06-22 14:28:31

标签: c# mongodb mongodb-.net-driver

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

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),例如。

1 个答案:

答案 0 :(得分:1)

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