Menu Docs
Página inicial do Docs
/ /

Otimizar consultas usando índices

Nesta página, você pode ver exemplos de código copiáveis que mostram como gerenciar diferentes tipos de índices usando o MongoDB Ruby Driver.

Para usar um exemplo desta página, copie o exemplo de código no aplicação de amostra ou em seu próprio aplicação. Certifique-se de substituir todos os espaços reservados nos exemplos de código, como <connection string>, pelos valores relevantes para sua implantação do MongoDB .

Você pode usar o seguinte aplicação de amostra para testar o código nesta página. Para usar o aplicação de amostra , execute as seguintes etapas:

  1. Verifique se o driver Ruby está instalado em seu projeto. Consulte o guia Download e instalação para saber mais.

  2. Copie o seguinte código e cole-o em um novo arquivo .rb .

  3. Copie um exemplo de código desta página e cole-o nas linhas especificadas no arquivo.

require 'mongo'
# Replace the placeholders with your credentials
uri = "<connection string>"
# Sets the server_api field of the options object to Stable API version 1
options = { server_api: { version: "1" }}
# Creates a new client and connect to the server
client = Mongo::Client.new(uri, options)
database = client.use('<database name>')
collection = database[:<collection name>]
# Start example code here
# End example code here
client.close

O exemplo seguinte cria um índice ascendente no campo especificado:

collection.indexes.create_one({ <field name>: 1 })

Para saber mais sobre índices de campo único, consulte o guia Índices de campo único .

O exemplo seguinte cria um índice composto nos dois campos especificados.

collection.indexes.create_one({ <field name 1>: -1, <field name 2>: 1 })

Para saber mais sobre índices compostos, consulte o guia Índices compostos .

O exemplo a seguir cria um índice de múltiplas chaves no campo com valor de array especificado:

collection.indexes.create_one({ <field name>: 1 })

Para saber mais sobre índices de várias chaves, consulte o guia Índices de várias chaves.

O exemplo seguinte cria um índice dsphere do 2no campo especificado que contém objetos GeoJSON:

collection.indexes.create_one({ <GeoJSON field name>: '2dsphere' })

Para saber mais sobre índices geoespaciais, consulte o guia Índices geoespaciais .

As seções a seguir contêm exemplos de código que descrevem como gerenciar índices de pesquisa MongoDB .

Para saber mais sobre índices de pesquisa, consulte o guia MongoDB Search e MongoDB Vector Search Indexes.

O exemplo a seguir cria um índice do MongoDB Search no campo especificado:

index_definition = {
mappings: {
dynamic: false,
fields: {
<field name>: { type: '<field type>' }
}
}
}
collection.search_indexes.create_one(index_definition, name: '<index name>')

O exemplo a seguir imprime uma lista de índices do MongoDB Search na coleção especificada:

puts collection.search_indexes.collect(&:to_json)

O exemplo a seguir atualiza um índice do MongoDB Search existente com a nova definição de índice especificada:

updated_definition = {
mappings: {
dynamic: false,
fields: { <updated field name>: { type: '<updated field type>' } }
}
}
collection.search_indexes.update_one(updated_definition, name: '<index name>')

O exemplo a seguir exclui um índice do MongoDB Search com o nome especificado:

collection.search_indexes.drop_one(name: '<index name>')

O exemplo seguinte cria um índice de texto no campo de string especificado:

collection.indexes.create_one({ <field name>: 'text' })

Para saber mais sobre índices de texto, consulte o guia Índices de texto .

O exemplo a seguir cria vários índices na array fornecida de especificações de índice:

collection.indexes.create_many([
{ key: { <field name 1>: 1 } },
{ key: { <field name 2>: -1 } },
])

O exemplo a seguir exclui um índice com o nome especificado:

collection.indexes.drop_one( '<index name>' )

O exemplo a seguir mostra como excluir todos os índices em uma coleção:

collection.indexes.drop_all

O exemplo a seguir imprime uma lista de todos os índices na collection especificada:

puts collection.indexes.collect(&:to_json)

A seguir está uma lista completa das opções disponíveis que você pode adicionar ao criar índices. Estas opções espelham as opções suportadas pelo comando createIndex. Para obter mais informações, consulte o comando createIndex no manual do MongoDB Server.

Opção
Descrição

:background

true ou false. Informa o índice a ser criado em segundo plano.

:expire_after

Número de segundos para expirar o documento na collection depois.

:name

O nome do índice.

:sparse

Se o índice deve ser esparso ou não, true ou false.

:storage_engine

O nome do storage engine para este índice específico.

:version

A versão do formato de índice a ser usada.

:default_language

O idioma padrão dos índices de texto.

:language_override

O nome do campo a ser usado ao substituir o idioma padrão.

:text_version

O formato de versão para armazenamento de índice de texto.

:weights

Um documento que especifica campos e pesos na pesquisa de texto.

:sphere_version

A versão 2d do índice de esferas.

:bits

Define o limite máximo para latitude e longitude no índice 2d.

:max

Limite máximo para latitude e longitude no índice 2d.

:min

Limite mínimo para latitude e longitude no índice 2d.

:bucket_size

O número de unidades dentro das quais agrupar os valores de localização em um índice geo haystack.

:partial_filter_expression

Um filtro para um índice parcial.

:hidden

Um booleano especificando se o índice deve ser ocultado; um índice oculto é aquele que existe na collection, mas não será usado pelo planejador de query.

:commit-quorum

Especifique quantos membros portadores de dados de um conjunto de réplicas, incluindo o primary, devem concluir as construções dos índices com êxito antes que o primary marque os índices como prontos. Os valores em potencial são:

  • número inteiro de 0 até o número de nós do conjunto de réplicas

  • “majority” indicando que a maioria dos nós portadores de dados deve votar

  • “votingMembers” o que significa que todos os nós portadores de dados de votação devem votar

Para obter mais informações, consulte commitQuorom no manual do MongoDB Server.

Para saber mais sobre os métodos ou objetos usados neste guia, consulte a seguinte documentação da API:

Voltar

Dados de Time Series

Nesta página