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.
76 77 78 79 80 81 |
# Arquivo 'lib/mongoid/indexable.rb', linha 76 def add_indexes se hereditário? && !index_keys.incluir?(auto.discriminator_key.to_sym => 1) index({ auto.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
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# Arquivo 'lib/mongoid/indexable.rb', linha 27 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.
96 97 98 99 100 101 |
# Arquivo 'lib/mongoid/indexable.rb', linha 96 def index(especificações, = nada) Especificação = Especificação.Novo(auto, especificações, ) se !index_specifications.incluir?(Especificação) index_specifications.push(Especificação) end end |
#index_specification(index_hash, index_name = nil) ➤ Especificação
Obtenha uma especificação de índice para a chave fornecida.
112 113 114 115 116 117 |
# Arquivo 'lib/mongoid/indexable.rb', linha 112 def index_specificação(index_hash, index_name = nada) index = OpenStruct.Novo(campos: index_hash.keys, chave: index_hash) index_specifications.detectar fazer |especificações| especificações == index || (index_name && index_name == especificações.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.
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 |
# Arquivo 'lib/mongoid/indexable.rb', linha 51 def remove_indexes indexed_database_names.cada fazer |database| com(database: database) fazer |classe| começar classe.collection.Índices(sessão: _session).cada fazer |especificações| a menos que especificações["nome"] == "_id_" classe.collection.Índices(sessão: _session).drop_one(especificações["chave"]) logger.informações( "MONGOID: removido índice '#{spec["name"]}' on collection " + "'#{klass.collection.name}' in banco de dados '#{banco de dados}'." ) end end salvar mongo::Erro::Falha de operação; end end end e a true end |