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 に答える