Módulo: Mongoid::Indexable::ClassMethods
- Definido em:
- lib/mongoid/indexable.rb
Recolhimento do Resumo do método de instância
-
#add_indexes ⇒ true
Adicione os índices padrão ao documento raiz se eles ainda não existirem.
-
#create_indexes ➤ true
Envie os comentários de criação do índice real para o driver MongoDB.
-
#index(spec, options = nil) ⇒ Hash
Adiciona uma definição de índice para as chaves únicas ou compostas fornecidas.
-
#index_specification(index_hash, index_name = nil) ➤ Especificação
Obtenha uma especificação de índice para a chave fornecida.
-
#remove_indexes ➤ true
Envie os comentários reais da remoção do índice para o driver do MongoDB , mas deixa _id intocado.
Detalhes do método de instância
#add_indexes ➤ true
Adicione os índices padrão ao documento raiz se eles ainda não existirem. Atualmente, é apenas _type.
72 73 74 75 76 77 |
# Arquivo 'lib/mongoid/indexable.rb', linha 72 def add_indexes se hereditário? && !index_keys.incluir?(discriminator_key.to_sym => 1) index({ discriminator_key.to_sym => 1 }, unique: false, background: true) end true end |
#create_indexes ➤ true
Enviar os comentários de criação do índice real para o driver do MongoDB
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# Arquivo 'lib/mongoid/indexable.rb', linha 24 def create_indexes Método a menos que index_specifications = { background: Config.background_indexing } index_specifications.cada fazer |especificações| chave, = especificações.chave, .mesclar(especificações.) se database = [:database] com(database: database) fazer |classe| classe.collection.Índices(sessão: _session).create_one(chave, .exceto(:database)) end mais collection.Índices(sessão: _session).create_one(chave, ) end end e a true end |
#index(spec, options = nil) ⇒ Hash
Adiciona uma definição de índice para as chaves únicas ou compostas fornecidas.
92 93 94 95 96 97 98 99 100 101 102 103 |
# Arquivo 'lib/mongoid/indexable.rb', linha 92 def index(especificações, = nada) Especificação = Especificação.Novo(auto, especificações, ) # o teste de igualdade para instâncias Indexable::Specification não # considere todas as opções, o que significa que os nomes não são comparados. Isso significa # que um índice com opções diferentes de outro, e uma # nome, será silenciosamente ignorado a menos que declarações de índice duplicadas # são permitidos. Método a menos que Mongoid.allow_duplicate_index_declarations || !index_specifications.incluir?(Especificação) index_specifications.push(Especificação) end |
#index_specification(index_hash, index_name = nil) ➤ Especificação
Obtenha uma especificação de índice para a chave fornecida.
114 115 116 117 118 |
# Arquivo 'lib/mongoid/indexable.rb', linha 114 def index_specificação(index_hash, index_name = nada) index_specifications.detectar fazer |especificações| especificações.superficial_match?(chave: index_hash, nome: index_name) end end |
#remove_indexes ➤ true
Envie os comentários reais da remoção do índice para o driver do MongoDB , mas deixa _id intocado.
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# Arquivo 'lib/mongoid/indexable.rb', linha 48 def remove_indexes indexed_database_names.cada fazer |database| com(database: database) fazer |classe| classe.collection.Índices(sessão: _session).cada fazer |especificações| próximo se especificações['nome'] == '_id_' classe.collection.Índices(sessão: _session).drop_one(especificações['key']) logger.informações( "MONGOID: removido índice '#{spec['name']}' na coleção " + "'#{klass.collection.name}' in banco de dados '#{banco de dados}'." ) end salvar mongo::Erro::Falha de operação end end e a true end |