Menu Docs
Página inicial do Docs
/ / /
Ruby Driver
/

Índices compostos

Os índices compostos contêm referências a vários campos dentro dos documentos de uma collection, melhorando o desempenho de query e classificação.

Ao criar um índice composto, você deve especificar os seguintes detalhes:

  • Os campos nos quais criar o índice

  • A ordem de classificação para cada campo (crescente ou decrescente)

Os exemplos deste guia usam a coleção movies no banco de dados sample_mflix dosconjuntos de dados de amostra do Atlas. Para acessar essa coleção a partir do seu aplicação Ruby, crie um objeto Mongo::Client que se conecte a um Atlas cluster e atribua os seguintes valores às suas variáveis database e collection:

database = client.use('sample_mflix')
collection = database[:movies]

Para saber como criar um cluster MongoDB Atlas gratuito e carregar os conjuntos de dados de amostra, consulte o guia Iniciar com Atlas .

Utilize o método create_one para criar um índice composto. O exemplo a seguir cria um índice em ordem decrescente no campo runtime e em ordem crescente no campo year :

collection.indexes.create_one({ runtime: -1, year: 1 })

Você pode verificar se o índice foi criado listando os índices na collection. Você deve ver um índice para runtime e year na lista, conforme mostrado na seguinte saída:

puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"runtime": -1, "year": 1}, "name": "runtime_-1_year_1"}

O seguinte é um exemplo de uma consulta coberta pelo índice criado nos campos runtime e year :

filter = { '$and' => [
{ runtime: { '$gt' => 90 } },
{ year: { '$gt' => 2005 } }
] }
doc = collection.find(filter).first
if doc
puts doc.to_json
else
puts "No document found"
end
{"_id":...,"runtime": 91,...,"title": "Monster House",...,"year": 2006,...}

Para ver exemplos executáveis que demonstram como gerenciar índices, consulte Otimizar queries usando índices.

Para saber mais sobre índices compostos, consulte Índices compostos no manual do MongoDB Server .

Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API:

Voltar

Campo Único

Nesta página