地理空间查询
在本页面:
要指定GeoJSON数据,请使用嵌入的文档:
- 一个名为type的字段,用于指定GeoJSON对象类型
- 一个名为坐标的字段,用于指定对象的坐标。
如果指定纬度和经度坐标,请先列出经度,然后再列出纬度:
- 有效的经度值在**-180到180**之间(包括两者)。
- 有效的纬度值在**-90到90**之间(包括两者之间)。
<field>: { type: <GeoJSON type> , coordinates: <coordinates> }
location: {
type: "Point",
coordinates: [-73.856077, 40.848447]
}
要将数据指定为旧版坐标对,可以使用数组(首选)或嵌入式文档。
<field>: [ <x>, <y> ]
如果指定纬度和经度坐标,请先列出经度,然后再列出纬度; 即:
<field>: [<longitude>, <latitude> ]
- 有效的经度值在**[-180 180]**。
- 有效的纬度值在**[-90 90]**。
<field>: { <field1>: <x>, <field2>: <y> }
如果指定纬度和经度坐标,第一个字段必须包含经度值,而第二个字段必须包含纬度值;即。
<field>: { <field1>: <longitude>, <field2>: <latitude> }
- 有效的经度值在**[-180 180]**。
- 有效的纬度值在**[-90 90]**。
为了指定旧版坐标对,数组比嵌入式文档更可取,因为某些语言不能保证关联地图的排序。
MongoDB提供以下地理空间索引类型以支持地理空间查询。
2dsphere
索引支持查询,该查询可在类似地球的球体上计算几何形状。
db.collection.createIndex( { <location field> : "2dsphere" } )
其中**<
location field
>**是其值为GeoJSON对象或旧版坐标对的字段。2d
db.collection.createIndex( { <location field> : "2d" } )