0

最寄りのリストで注文しようとしています。これは、次のコードで正常に機能しています。

    Cloud.Places.query({
page: 1,
per_page: 20,
where: {
    lnglat: { '$nearSphere': [latitudefast,longitudefast],  }
    },

order: {
    lnglat: { '$nearSphere': [latitudefast,longitudefast],  }
    },

latitudefast と longitudefast は、ユーザーの実際の位置を表しています。クエリの前に定義されています。

しかし、それは「逆さま」であり、最も近い場所がリストの一番下にあり、最も遠い場所がリストの一番上にあることを意味します! どうして?逆に注文するにはどうすればよいですか?私は間違って注文していますか?ありがとう!

4

1 に答える 1

0

順番を指定しないでみましたか?デフォルトでは、$nearSphere は距離でソートされた結果を返します。

$near を説明する MongoDB のドキュメント (ACS がデータ ストアとして使用するもの) から:

上記のクエリは、(50,50) に最も近いポイントを見つけ、それらを距離で並べ替えて返します (追加の並べ替えパラメーターは必要ありません)。

これは $nearSphere にも当てはまります。

http://www.mongodb.org/display/DOCS/Geospatial+Indexing

于 2012-06-19T18:14:36.497 に答える