我有一个包含位置“框”(方形区域)列表的文档。每个框由 2 个点表示(左下或西南、右上角或东北)。
文档,例如:
{
locations: [
[[bottom,left],[top,right]],
[[bottom,left],[top,right]],
[[bottom,left],[top,right]]
]
}
我在用着2d http://docs.mongodb.org/manual/core/2d/这些边界点的索引。
我的输入是一个特定的位置点 [x,y],我想获取列表中具有该点所在框的所有文档。
有没有地理空间算子 http://docs.mongodb.org/manual/reference/operator/query-geospatial/我可以用它来做到这一点吗?
我该如何编写这个查询?
您可以使用框运算符,请参阅:http://docs.mongodb.org/manual/reference/operator/query/box/#op._S_box 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 http://docs.mongodb.org/manual/reference/operator/query/geoWithin/#op._S_geoWithin
GeoJSON 还有许多其他好处,其中最重要的是它可以轻松地通过 OpenLayers 或 Leaflet 等 Web 地图应用程序进行传输和消化。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)