$geoIntersects (Geometry Intersects)
Last updated: 2026-10-09
$geoIntersects (Geometry Intersects)
$geoIntersects finds documents whose GeoJSON geometry intersects the given geometry. `{ loc: { $geoIntersects: { $geometry: { type: 'Polygon', coordinates: [...] } } } }`. Unlike $geoWithin (point-in-area), $geoIntersects tests whether two geometries — points, lines, or polygons — intersect. Requires a 2dsphere index.
| Category | Geospatial |
|---|---|
| MongoDB Version | 2.4+ |
| Example Language | mongosh (Shell) |
📝 Syntax
{ <location field>: { $geoIntersects: { $geometry: <GeoJSON geometry> } } }
⚙️ Parameters
| position field | The field storing the location. |
|---|---|
| GeoJSON geometry | A GeoJSON object: Point, LineString, Polygon, etc. |
Returns:Cursor of matching documents
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// $geoIntersects: stops intersecting a route
db.stops.find({
loc: { $geoIntersects: {
$geometry: { type: 'LineString', coordinates: [[0, 0], [1, 1]] }
} }
})
Output:
// Returns stops intersecting the LineString (e.g. a point on the segment)
📌 Notes
- Unlike $geoWithin it handles line-polygon and polygon-polygon intersection
- Requires a 2dsphere index and GeoJSON coordinates
- Results are not sorted
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QHow are $geoIntersects and $geoWithin related?
A$geoWithin is point-in-shape; $geoIntersects is geometry intersection — broader.
QCan a point on the polygon boundary match?
AYes, the boundary counts as an intersection.
QWhich index does $geoIntersects need?
AA 2dsphere index.