$near (近傍・距離順)

最終更新:2026-10-09

$near (近傍・距離順)

$near は、地点からの距離の昇順で地理空間ドキュメントを返します。`{ loc: { $near: { $geometry: { type: 'Point', coordinates: [lng, lat] }, $maxDistance: 1000 } } }` のように使います。2dsphere または 2d インデックスが必要で、同じクエリ内で別の $near や $nearSphere と組み合わせることはできません。

カテゴリ地理空間
MongoDB バージョン2.4+
例の言語mongosh(シェル)

📝 構文

{ <location field>: { $near: { $geometry: <Point>, $maxDistance: <meters> } } }

⚙️ パラメータ

位置フィールド位置情報を格納するフィールド。
Point ジオメトリ[経度, 緯度] を持つ GeoJSON Point。
maxDistance任意。最大距離(メートル単位)。

戻り値:一致するドキュメントのカーソル(距離の昇順)

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// $near: 地点から 1000 m 以内の店舗
db.stores.find({
  loc: { $near: {
    $geometry: { type: 'Point', coordinates: [-73.97, 40.75] },
    $maxDistance: 1000
  } }
})

出力:

// 1000 m 以内の店舗を距離の昇順で返す

📌 注意事項

さらなる実践ケースを近日公開予定。

📚 関連チュートリアル

❓ よくある質問

Q$near の結果は事前にソートされていますか?
Aはい。距離の昇順で返されるため、追加の sort は不要です。
Q$near にインデックスは必須ですか?
Aはい。2dsphere または 2d インデックスがなければエラーになります。
Q$near と $geoWithin はいつ使い分けますか?
A距離順の並べ替えが必要なら $near、包含関係の判定のみなら $geoWithin を選びます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%