3

Mongo で空間クエリを実行しています。サンフランシスコから 10 マイル以内にあるすべての会場を検索する必要があります。コマンド ラインから、$geoNear (動作) と $near (動作しない) を使用すると、異なる結果が得られます。私は Mongoose を使用しており、$near を使用しているため、$near を使用する必要があります。

$geoNear が機能します。次のコマンドを実行します。

db.runCommand({geoNear:"venues",near:[-122.418,37.775], maxDistance:10/69});

半径 10 マイル以内の距離で並べ替えられた結果が得られます。偉大な。

しかし、次の $near コマンドを実行しても結果が得られません。

db.venues.find({loc: {$near: [-122.418,37.775] }, $maxDistance:10/69})

私が知る限り、それらは同じコマンドです。何か不足していますか?$maxDistance を削除すると、結果が返され、距離順に正しく並べられます。ただし、10 マイル以上離れた場所でも結果が得られます。

db.venues.find({loc: {$near: [-122.418,37.77] }})
4

1 に答える 1

11

$maxDistance : X が {$near} JSON ドキュメント内にある必要があります。外部にあります。

変化するdb.venues.find({loc: {$near: [-122.418,37.775] }, $maxDistance:10/69})

することが

db.venues.find({loc: {$near: [-122.418,37.775], $maxDistance:10/69 } })

于 2012-12-12T02:53:14.937 に答える