$box
On this page本页内容
Definition定义
$box-
Specifies a rectangle for a geospatial为geospatial地理空间$geoWithinquery to return documents that are within the bounds of the rectangle, according to their point-based location data.$geoWithin查询指定一个矩形,以根据基于点的位置数据返回矩形边界内的文档。When used with the当与$boxoperator,$geoWithinreturns documents based on grid coordinates and does not query for GeoJSON shapes.$box运算符一起使用时,$geoWithin基于网格坐标返回文档,而不查询GeoJSON形状。To use the若要使用$boxoperator, you must specify the bottom left and top right corners of the rectangle in an array object:$box运算符,必须指定数组对象中矩形的左下角和右上角:{
<location field>: {
$geoWithin: {
$box: [
[ <bottom left coordinates> ],
[ <upper right coordinates> ]
]
}
}
}ImportantIf you use longitude and latitude, specify longitude first.如果使用经度和纬度,请先指定经度。
Behavior行为
The query calculates distances using flat (planar) geometry.查询使用平面(平面)几何图形计算距离。
Applications can use 应用程序可以在没有地理空间索引的情况下使用$box without having a geospatial index. However, geospatial indexes support much faster queries than the unindexed equivalents.$box。但是,地理空间索引支持的查询速度比未编制索引的索引快得多。
Only the 2d geospatial index supports 只有2d地理空间索引支持$box.$box。
Example实例
The following example query returns all documents that are within the box having points at: 以下示例查询返回框内的所有文档,这些文档的点位于:[ 0 , 0 ], [ 0 , 100 ], [ 100 , 0 ], and [ 100 , 100 ].[ 0 , 0 ]、[ 0 , 100 ]、[ 100 , 0 ]和[ 100 , 100 ]。
db.places.find( {
loc: { $geoWithin: { $box: [ [ 0, 0 ], [ 100, 100 ] ] } }
} )