Clase: Mongoid::Criteria::Queryable::Selector
- Hereda:
-
Smash
- Objeto
- encriptada
- Smash
- Mongoid::Criteria::Queryable::Selector
- Definido en:
- lib/mongoid/criteria/queryable/selector.rb
Overview
El selector es un tipo especial de hash que sabe cómo serializar los valores que ingresan, así como ser consciente de alias y localización para los nombres de claves.
Resumen del atributo de la instancia
Atributos heredados de Smash
#aliased_associations, #aliased_associations Las aliased_associations., #aliases, #aliases Los aliases., #associations, #associations Las associations., #serializers, #serializers Los serializers.
Resumen del método de instancia colapsar
-
#merge!(other) ⇒ Selector
Combina otro selector en este.
-
#almacenar(clave, valor) ⇒ Objeto (también: #[]=)
Almacene el valor en el selector para la clave proporcionada.
-
#to_pipeline ⇒ Array<Hash>
Convierte el selector en una entrada de pipeline de agregación.
Métodos heredados de Smash
#[], #__deep_copy__, #initialize
Detalles del Constructor
Esta clase hereda un constructor de Mongoid::Criteria::Queryable::Smash
Detalles del método de instancia
#merge!(otro) ⇒ Selector
Combina otro selector en este.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# Archivo 'lib/mongoid/criteria/queryable/selector.rb', línea 17 def ¡Actualizar!(Otros) Otros.each_pair hacer |llave, Valor| si Valor.is_a?(encriptada) && sí mismo[llave.to_s].is_a?(encriptada) Valor = sí mismo[llave.to_s].fusionar(Valor) hacer |_key, old_val, new_val| caso _key.to_s cuando '$in' new_val & old_val cuando '$nin' (old_val + new_val).uniq else new_val end end end Valor = (sí mismo[llave.to_s] || []).concat(Valor) si multi_selección?(llave) store(llave, Valor) end end |
#store(key, value) ⇒ Object También se conoce como: []=
Almacena el valor en el selector para la clave proporcionada. El selector gestionará toda la serialización y localización necesaria en este paso.
46 47 48 49 50 51 52 53 54 55 |
# Archivo 'lib/mongoid/criteria/queryable/selector.rb', línea 46 def store(llave, Valor) Nombre, serializador = storage_pair(llave) si multi_selección?(Nombre) store_name = Nombre store_value = evolve_multi(Valor) else store_name, store_value = store_creds(Nombre, serializador, Valor) end super(store_name, store_value) end |
#to_pipeline ⇒ Array<Hash>
Convierte el selector en una entrada de pipeline de agregación.
64 65 66 67 68 |
# Archivo 'lib/mongoid/criteria/queryable/selector.rb', línea 64 def to_pipeline pipeline = [] pipeline.push({ '$match' => sí mismo }) a menos que ¿vacío? pipeline end |