首页/数据/NoSQL 速查/地理空间查询 $near / $geoWithin
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

地理空间查询 $near / $geoWithin

基于 GeoJSON 或传统坐标对做距离与范围查询;$near 按距离近到远返回,$geoWithin 判断点是否落在区域内。

NoSQL 速查数据更新于 2026-10-12
索引2dsphere(球面)/ 2d(平面)
$near距离排序 + $maxDistance
$geoWithin区域内查询,结果无序

示例

示例
db.stores.createIndex({ loc: "2dsphere" })
db.stores.find({ loc: { $near: { $geometry: { type: "Point", coordinates: [121.47, 31.23] }, $maxDistance: 1000 } } })
$near 不能与 $or 等部分操作符组合;范围内的最近排序可改用 $geoNear 聚合阶段。

易错点

  • GeoJSON 坐标顺序是 [经度, 纬度],写反会得到相隔很远的结果
  • 缺少地理索引时 $near 直接报错,$geoWithin 也会退化为低效扫描

数据来源与参考

  • MongoDB Manual: Geospatial Queries
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌