Inhaltsverzeichnis
1. LBS地理空间索引
2. 创建索引
3. 查询
3.1 查询多边形范围的值
3.2 查询附近的值
3.3 查询圆形内的值
Heim Datenbank MySQL-Tutorial Mongodb地理空间索引

Mongodb地理空间索引

Jun 07, 2016 pm 03:56 PM
mongodb 地理 空间 索引

1. LBS地理空间索引 关于LBS相关项目,一般存储每个地点的经纬度的坐标, 如果要查询附近的场所,则需要建立索引来提升查询效率。 Mongodb专门针对这种查询建立了地理空间索引。 2d和2dsphere索引。 2. 创建索引 建立places集合,来存放地点, loc字段用来存

1. LBS地理空间索引

关于LBS相关项目,一般存储每个地点的经纬度的坐标, 如果要查询附近的场所,则需要建立索引来提升查询效率。 Mongodb专门针对这种查询建立了地理空间索引。 2d和2dsphere索引。

2. 创建索引

建立places集合,来存放地点, loc字段用来存放地区数据GeoJSON Point。
db.places.insert(
   {
      loc : { type: "Point", coordinates: [ -73.97, 40.77 ] },
      name: "Central Park",
      category : "Parks"
   }
)

db.places.insert(
   {
      loc : { type: "Point", coordinates: [ -73.88, 40.78 ] },
      name: "La Guardia Airport",
      category : "Airport"
   }
)
Nach dem Login kopieren
建立索引
db.places.ensureIndex( { loc : "2dsphere" } )
Nach dem Login kopieren
参数不是1或-1,为2dsphere。还可以建立组合索引。
db.places.ensureIndex( { loc : "2dsphere" , category : -1, name: 1 } )
Nach dem Login kopieren

3. 查询

$geometry表示查询的几何图片.

3.1 查询多边形范围的值

type表示类型:polygon 多边形
db.places.find( { loc :
                  { $geoWithin :
                    { $geometry :
                      { type : "Polygon" ,
                        coordinates : [ [
                                          [ 0 , 0 ] ,
                                          [ 3 , 6 ] ,
                                          [ 6 , 1 ] ,
                                          [ 0 , 0 ]
                                        ] ]
                } } } } )
Nach dem Login kopieren

3.2 查询附近的值

使用$near来查询附近的地点。
 db.places.find( { loc :
                         { $near :
                           { $geometry :
                              { type : "Point" ,
                                coordinates : [ <longitude> , <latitude> ] } ,
                             $maxDistance : <distance in meters>
                      } } } )
Nach dem Login kopieren

3.3 查询圆形内的值

查询圆时,需要指定圆心, 半径。
db.places.find( { loc :
                  { $geoWithin :
                    { $centerSphere :
                       [ [ -88 , 30 ] , 10 ]
                } } } )
Nach dem Login kopieren
[-88, 30] 为经纬度, 10为半径。
地址:http://blog.csdn.net/yonggang7/article/details/28109463
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Version wird im Allgemeinen für Mongodb verwendet? Welche Version wird im Allgemeinen für Mongodb verwendet? Apr 07, 2024 pm 05:48 PM

Welche Version wird im Allgemeinen für Mongodb verwendet?

Der Unterschied zwischen NodeJS und VueJS Der Unterschied zwischen NodeJS und VueJS Apr 21, 2024 am 04:17 AM

Der Unterschied zwischen NodeJS und VueJS

Was sind die Vorteile der Mongodb-Datenbank? Was sind die Vorteile der Mongodb-Datenbank? Apr 07, 2024 pm 05:21 PM

Was sind die Vorteile der Mongodb-Datenbank?

Wo wird die von mongodb erstellte Datenbank erstellt? Wo wird die von mongodb erstellte Datenbank erstellt? Apr 07, 2024 pm 05:39 PM

Wo wird die von mongodb erstellte Datenbank erstellt?

Einführung in den für das Upgrade von Win11 erforderlichen Speicherplatz auf dem Laufwerk C Einführung in den für das Upgrade von Win11 erforderlichen Speicherplatz auf dem Laufwerk C Dec 23, 2023 am 08:57 AM

Einführung in den für das Upgrade von Win11 erforderlichen Speicherplatz auf dem Laufwerk C

Was bedeutet Mongodb? Was bedeutet Mongodb? Apr 07, 2024 pm 05:57 PM

Was bedeutet Mongodb?

So fügen Sie Swap-Speicherplatz unter Ubuntu 22.04 LTS hinzu So fügen Sie Swap-Speicherplatz unter Ubuntu 22.04 LTS hinzu Feb 20, 2024 am 11:12 AM

So fügen Sie Swap-Speicherplatz unter Ubuntu 22.04 LTS hinzu

Wo sind die Mongodb-Datenbankdateien? Wo sind die Mongodb-Datenbankdateien? Apr 07, 2024 pm 05:42 PM

Wo sind die Mongodb-Datenbankdateien?

See all articles