Clase: Mongoid::Criteria::Queryable::Selector
- Hereda:
-
Smash
- Objeto
- Picadillo
- Smash
- Mongoide::Criterios::Consultable::Selector
- Definido en:
- lib/mongoid/criterios/consultable/selector.rb
Overview
El selector es un tipo especial de hash que sabe cómo serializar los valores que ingresan y también es consciente de los alias y la configuración regional de los nombres de clave.
Resumen de atributos de instancia
Atributos heredados de Smash
#aliased_associations, #aliased_associations Las aliased_associations., #aliases, #aliases Los aliases., #associations, #associations Las associations., #serializers, #serializers Los serializers.
Colapso del resumen del método de instancia
-
#¡Fusionar!(otro) ⇒ Selector
Fusiona otro selector en este.
-
#tienda(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
#¡Fusionar!(otro) ⇒ Selector
Fusiona 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 |clave, valor| Si valor.is_a?(Picadillo) && yo[clave.a_s].is_a?(Picadillo) valor = yo[clave.a_s].unir(valor) hacer |_llave, valor_antiguo, nuevo_valor| caso _llave.a_s Cuando '$in' nuevo_valor Y valor_antiguo Cuando '$nin' (valor_antiguo + nuevo_valor).único else nuevo_valor end end end Si ¿selección múltiple?(clave) valor = (yo[clave.a_s] || []).concat(valor) end store(clave, valor) end end |
#almacenar(clave, valor) ⇒ Objeto También conocido 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(clave, valor) Nombre, serializador = par de almacenamiento(clave) Si ¿selección múltiple?(Nombre) nombre_de_la_tienda = Nombre store_value = evolve_multi(valor) else nombre_de_la_tienda, store_value = store_creds(Nombre, serializador, valor) end Super(nombre_de_la_tienda, 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 a_tubería pipeline = [] pipeline.Push({ "$coincidencia" => yo }) a no ser que ¿vacío? pipeline end |