mongodb指南(翻译)(二十) - developer zone - 索引(四)地理信息索引
v1.4+ MongoDB支持2维地理信息索引。它被设计用来进行脑海中基于位置的查询,诸如“查找距离我的位置最近的N个场所”。它还可以高效的处理额外的查询条件,比如“查找距离我的位置最近的N个博物馆”。 为了可以使用这种索引,你需要在你的对象中设置一个字段,该字段可以是一个子对象或者前两个元素为x,y坐标的数组(或者y,x-只要一致就行;为了确保一致性,推荐在你的客户端代码中使用保持排序的词典/hashes。)。 一些例子: { loc : [ 50 , 30 ] } //SUGGESTED OPTION{ loc : { x : 50 , y : 30 } }{ loc : { foo : 50 , y : 30 } }{ loc : { lon : 40.739037, lat: 73.992964 } } 创建该索引 db.places.ensureIndex( { loc : "2d" } ) 默认情况下,该索引假定你在索引经度/维度,并且这些值的范围是[-180,180]. 如果你在索引其他东西,你可以指定一些选项: db.places.ensureIndex( { loc : "2d" } , { min : -500 , max : 500 } ) 这会对索引扩容来存储-500到500范围的值。地理信息边界搜索目前是限制在长方形和圆形之内不含边界以外。你不能插入边界