Classe: Mongoid::Criteria::Queryable::Selector
- Herda:
-
Smash
- Objeto
- Hash
- Smash
- Mongoid::Criteria::Queryable::Seletor
- Definido em:
- lib/mongoid/criteria/queryable/selector.rb
Visão geral
O seletor é um tipo especial de hash que sabe como serializar os valores que entram nele, além de reconhecer nomes alternativos e locais para os nomes das chaves.
Resumo do atributo de instância
Atributos herdados do Smash
#aliased_associations, #aliased_associations As aliased_associations ., #aliases, #aliases Os nomes alternativos., #associations, #associations As associações., #serializers, #serializers Os serializadores.
Recolhimento do Resumo do método de instância
-
#merge!(outro) Seletor de ➤
Mescle outro seletor a este.
-
#store(key, value) ➤ Object (também: #[]=)
Armazene o valor no seletor para a chave fornecida.
-
#to_pipeline ⇒ Array<Hash>
Converta o seletor para uma entrada de pipeline de agregação .
Métodos herdados do Smash
#[], #__deep_copy__, #initialize
Detalhes do construtor
Esta classe herda um construtor de Mongoid::Criteria::Queryable::Smash
Detalhes do método de instância
#merge!(outro) Seletorde ➤
Mescle outro seletor a este.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# Arquivo 'lib/mongoid/criteria/queryable/selector.rb', linha 20 def mesclar!(Outro) Outro.cada_pair fazer |chave, valor| se valor.is_a?(Hash) && auto[chave.to_s].is_a?(Hash) valor = auto[chave.to_s].mesclar(valor) fazer |_key, old_val, new_val| caso _key.to_s quando '$in' new_val & old_val quando '$nin' (old_val + new_val).uniq mais new_val end end end se multi_selection?(chave) valor = (auto[chave.to_s] || []).concat(valor) end Armazenar(chave, valor) end end |
#store(key, value) ➤ Object Também conhecido como: []=
Armazene o valor no seletor para a chave fornecida. O seletor lidará com toda a serialização e localização necessárias nesta etapa.
51 52 53 54 55 56 57 58 59 60 |
# Arquivo 'lib/mongoid/criteria/queryable/selector.rb', linha 51 def Armazenar(chave, valor) name, serializador, serializador = storage_pair(chave) se multi_selection?(name) store_name = name store_value = evolve_multi(valor) mais store_name, store_value = store_creds(name, serializador, serializador, valor) end super(store_name, store_value) end |
#to_pipeline ➤ Array<Hash>
Converta o seletor para uma entrada de pipeline de agregação .
69 70 71 72 73 |
# Arquivo 'lib/mongoid/criteria/queryable/selector.rb', linha 69 def to_pipeline gasoduto = [] gasoduto.push({ "$match" => auto }) a menos que vazio? gasoduto end |