Clase: Mongoid::Criteria::Queryable::Selector
- Hereda:
-
Smash
- Objeto
- Picadillo
- 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 canalización de agregación.
Métodos heredados de Smash
#[], #__deep_copy__, #inicializar
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.
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# Archivo 'lib/mongoid/criteria/queryable/selector.rb', línea 20 def ¡unir!(Otros) Otros.each_pair hacer |llave, Valor| si Valor.is_a?(Picadillo) && sí mismo[llave.to_s].is_a?(Picadillo) Valor = sí mismo[llave.to_s].fusionar(Valor) hacer |_key, old_val, new_val| caso _key.to_s Cuando '$in' new_val Y old_val Cuando '$nin' (old_val + new_val).único else new_val end end end si multi_selección?(llave) Valor = (sí mismo[llave.to_s] || []).concat(Valor) end 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.
51 52 53 54 55 56 57 58 59 60 |
# Archivo 'lib/mongoid/criteria/queryable/selector.rb', línea 51 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 canalización de agregación.
69 70 71 72 73 |
# Archivo 'lib/mongoid/criteria/queryable/selector.rb', línea 69 def to_pipeline pipeline = [] pipeline.push({ "$coincidencia" => sí mismo }) a menos que ¿vacío? pipeline end |