Índices geoespaciais
Visão geral
O MongoDB suporta queries de dados de coordenadas geoespaciais utilizando índices dsphere do2. Com um índice 2dsphere
, você pode executar query dos dados geoespaciais para inclusão, interseção e proximidade. Para mais informações sobre query de dados geoespaciais, consulte queries geoespaciais do .
Para criar um índice do 2dsphere
, você deve especificar um campo que contém somente Objetos GeoJSON. Para obter mais detalhes sobre este tipo, consulte o guia ObjetosGeoJSON no manual do MongoDB Server .
Dados de amostra
Os exemplos neste guia usam a collection sample_mflix.theaters
dos conjuntos de dados de amostra do Atlas. Para saber como criar um cluster gratuito do MongoDB Atlas e carregar os conjuntos de dados de amostra, consulte o Introdução ao PyMongo.
O campo location.geo
no seguinte documento de amostra da coleção theaters
no banco de dados sample_mflix
é um objeto de ponto GeoJSON que descreve as coordenadas do teatro:
{ "_id" : ObjectId("59a47286cfa9a3a73e51e75c"), "theaterId" : 104, "location" : { "address" : { "street1" : "5000 W 147th St", "city" : "Hawthorne", "state" : "CA", "zipcode" : "90250" }, "geo" : { "type" : "Point", "coordinates" : [ -118.36559, 33.897167 ] } } }
Criar um índice geoespacial
O seguinte exemplo cria um índice 2dsphere
no campo location.geo
:
theaters.create_index( [( "location.geo", "2dsphere" )] )
O MongoDB também suporta índices 2d
para calcular distâncias em um plano euclidiano e para trabalhar com a sintaxe dos "legacy coordinate pairs" usada no MongoDB 2.2 e anteriores. Para mais informações, consulte o guia de queries geoespaciais no manual do MongoDB Server .