Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Driver Scala
/

Atlas Searchgeoespacial

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:

  • A test.restaurants collection populated with documents from the restaurants.json file in the documentation assets GitHub.

  • 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

Nesta página