sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur implementerar MongoDB sina rumsliga index?

Den här presentationen från Greg Studer (10gen) diskuterar de geospatiala indexen i detalj:Geospatial Indexering med MongoDB .

Den geospatiala standardimplementeringen som vid MongoDB 2.2 använder en 2-D GeoHash tillvägagångssätt, med varierande bitar av precision:

By default, precision is set to 26 bits which is equivalent to approximately
2 feet given (longitude, latitude) location values and default (-180, 180)
bounds.

GeoHash-metoden har kantfall där vissa punkter kan vara rumsligt nära men har olika hash. MongoDB inkluderar också ett Geospatial Haystack Index som är specifikt inställd för "nära" lång/lat sökningar i små regioner med ytterligare ett indexerat kriterium (till exempel:"hitta alla restauranger inom 40 km med namnet "foo").

En annan intressant presentation från Nicholas Knize (Thermopylae) kontrasterar den nuvarande B-tree / GeoHash-metoden med R- träd . Om du hoppar vidare till bild 8 finns det en visuell förklaring som kan vara till hjälp:RTree Spatial Indexing med MongoDB - MongoDC .




  1. Använder mongo med FLASK och python

  2. bson.D vs bson.M för sökfrågor

  3. Uppdatera ett underdokument i mongodb?

  4. Hur man filtrerar en samling baserat på varje matrisobjekt i ett dokumentfält i Mongodb