Visão geral
Índices multichave são índices que melhoram o desempenho de queries em campos com valor de array. Você pode criar um índice de múltiplas chaves em uma coleção utilizando o create_one
método e a mesma sintaxe que você utiliza para criar um índice de campo único do.
Ao criar um índice de múltiplas chaves, você deve especificar os seguintes detalhes:
Os campos nos quais criar o índice
A ordem de classificação para cada campo (crescente ou decrescente)
Dados de amostra
Os exemplos neste guia utilizam a coleção do movies
no banco de dados do sample_mflix
a partir 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 .
Criar um índice de múltiplas chaves
Utilize o método create_one
para criar um índice de múltiplas chaves. O exemplo seguinte cria um índice em ordem crescente no campo cast
:
collection.indexes.create_one({ cast: 1 })
Verificar criação do índice
Você pode verificar se o índice foi criado listando os índices na collection. Você deve ver um índice para cast
na lista, conforme mostrado na seguinte saída:
puts collection.indexes.collect(&:to_json)
{"v": 2, "key": {"cast": 1}, "name": "cast_1"}
Query de exemplo
O seguinte é um exemplo de uma query coberta pelo índice criado no campo cast
:
filter = { cast: { '$all' => ['Aamir Khan', 'Kajol'] } } doc = collection.find(filter).first if doc puts doc.to_json else puts "No document found" end
{"_id":...,"title":"Fanaa",...,"cast": ["Aamir Khan", "Kajol", "Rishi Kapoor", "Tabu"],...}
Informações adicionais
Para exibir exemplos executáveis que demonstram como gerenciar índices, consulte Otimizar queries usando índices.
Para saber mais sobre índices de várias chaves, consulte Índices de várias chaves no manual do MongoDB Server .
Documentação da API
Para saber mais sobre qualquer um dos métodos discutidos nesta guia, consulte a seguinte documentação da API: