Menu Docs
Página inicial do Docs
/ / /
Scala
/

Atlas Searchgeoespacial

Nesta página

  • Pré-requisitos
  • Conecte-se a um MongoDB deployment
  • Criar um índice de 2dsphere
  • Query para localizações próximas a um ponto GeoJSON

Para suportar queries geoespaciais, MongoDB fornece índices geoespaciais e operadores de consulta geoespacial.

Para saber mais sobre como executar queries geoespaciais, consulte Queries geoespaciais no manual do servidor.

Você deve configurar os seguintes componentes para executar os exemplos de código neste guia:

  • Uma test.restaurants coleção preenchida com documentos do restaurants.json arquivo nos ativos Github de documentação do .

  • As seguintes declarações de importação:

import org.mongodb.scala._
import org.mongodb.scala.model.geojson._
import org.mongodb.scala.model.Indexes
import org.mongodb.scala.model.Filters

Observação

Este guia usa as implicações do Observable como abordadas no Quick Start Primary.

Primeiro, conecte a um MongoDB deployment e, em seguida, declare e defina as instâncias MongoDatabase e MongoCollection .

O código a seguir se conecta a uma MongoDB deployment standalone em execução em localhost na porta 27017. Em seguida, define a variável database para fazer referência ao banco de dados test e a variável collection para fazer referência à coleção restaurants :

val mongoClient: MongoClient = MongoClient()
val database: MongoDatabase = mongoClient.getDatabase("test")
val collection: MongoCollection[Document] = database.getCollection("restaurants")

Para saber mais sobre como se conectar a sistemas do MongoDB, consulte o tutorial Conectar ao MongoDB .

Para criar um índice 2dsphere , utilize o auxiliar Indexes.geo2dsphere() para criar uma especificação para o índice 2dsphere . Passe a especificação para o método MongoCollection.createIndex() para criar o índice.

O seguinte exemplo cria um índice 2dsphere no campo "contact.location" na coleção:

collection.createIndex(Indexes.geo2dsphere("contact.location")).printResults()

O MongoDB fornece vários operadores de query geoespacial. Para facilitar a criação de filtros de consulta geoespacial, o driver fornece a classe Filters e o pacote com.mongodb.client.model.geojson .

O exemplo a seguir retorna documentos que estão a pelo menos 1000.0 metros e no máximo a 5000.0 metros da instância GeoJSON Point especificada, classificados automaticamente do mais próximo para o mais distante:

val refPoint = Point(Position(-73.9667, 40.78))
collection.find(Filters.near("contact.location", refPoint, 5000.0, 1000.0)).printResults()

Voltar

Pesquisa de texto