$geoIntersects (ジオメトリの交差)

最終更新:2026-10-09

$geoIntersects (ジオメトリの交差)

$geoIntersects は、GeoJSON ジオメトリが指定したジオメトリと交差するドキュメントを検索します。`{ loc: { $geoIntersects: { $geometry: { type: 'Polygon', coordinates: [...] } } } }` のように使います。$geoWithin(点が領域内か)と違い、$geoIntersects は点・線・ポリゴンという 2 つのジオメトリが交差するかどうかを判定します。2dsphere インデックスが必要です。

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

📝 構文

{ <location field>: { $geoIntersects: { $geometry: <GeoJSON geometry> } } }

⚙️ パラメータ

位置フィールド位置情報を格納するフィールド。
GeoJSON ジオメトリGeoJSON オブジェクト: Point、LineString、Polygon など。

戻り値:一致するドキュメントのカーソル

▶ 例

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

// $geoIntersects: ルートと交差する停留所
db.stops.find({
  loc: { $geoIntersects: {
    $geometry: { type: 'LineString', coordinates: [[0, 0], [1, 1]] }
  } }
})

出力:

// LineString と交差する停留所を返す(例: セグメント上の点)

📌 注意事項

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

📚 関連チュートリアル

❓ よくある質問

Q$geoIntersects と $geoWithin の関係は?
A$geoWithin は点が図形の中にあるかを判定します。$geoIntersects はジオメトリ同士の交差を判定する、より広い概念です。
Qポリゴン境界上の点も一致しますか?
Aはい。境界も交差として数えられます。
Q$geoIntersects に必要なインデックスは?
A2dsphere インデックスです。
Web-Tutorial.com

Web-Tutorial 技術チーム

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

100%