Mongodb 地理位置边界搜索/查询

标签 mongodb geolocation geospatial mongodb-query geojson

我有一个包含位置“框”(方形区域)列表的文档。每个框由 2 个点表示(左下或西南、右上角或东北)。

文档,例如:

{
   locations: [
        [[bottom,left],[top,right]],
        [[bottom,left],[top,right]],
        [[bottom,left],[top,right]]
   ]
}

我正在使用2d这些边界点的索引。

我的输入是一个特定位置点 [x,y],我想获取列表中包含该点所在框的所有文档。

有没有geospatial operator我可以用它来做到这一点吗? 我该如何编写这个查询?

最佳答案

您可以使用框运算符,请参阅: http://docs.mongodb.org/manual/reference/operator/query/box/#op._S_box以下示例直接取自该页面:

db.places.find( { loc : { $geoWithin : { $box :
                                      [ [ 0 , 0 ] ,
                                        [ 100 , 100 ] ] } } } )

值得注意的是,二维索引被认为是遗留的。如果您可以转换为使用 GeoJSON 和 2dsphere 索引,那么您可以使用 $geoWithin 运算符:请参阅

http://docs.mongodb.org/manual/reference/operator/query/geoWithin/#op._S_geoWithin

GeoJSON 还有许多其他优点,其中最重要的是,它很容易被 OpenLayers 或 Leaflet 等 Web map 应用程序传输和消化。

关于Mongodb 地理位置边界搜索/查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23734942/

相关文章:

javascript - MongoDb、NodeJs、Express 和 Angular 2,来自两个集合的数据连接、检索和显示

javascript - 我想在命令行上获取我的 linux 设备的准确经纬度。就像 HTML5 中的地理定位。我无权访问浏览器

search - Solr 空间搜索输入点并查询其中的多边形

java - 创建搜索索引 GAE 地理空间查询的权限被拒绝

java - Spring Data Mongo - 动态更改存储库模板

MongoDB 3.2 身份验证失败

java - 在聚合java时连接mongo数据库字段

iPhone - 按纬度和经度划分的 SQLite 距离

javascript - 如何在谷歌地图中自动设置信息窗口内容

ruby-on-rails-3 - 使用 Rails/Mongoid 进行地理空间查询的最佳教程是什么?