Clase: Mongoid::Criteria::Queryable::Selector

Hereda:
Smash
  • Objeto
Mostrar todo
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

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.

Ejemplos:

Fusionar en otro selector.

selector.merge!(name: "test")

Parámetros:

  • otros (Hash | Selector)

    El objeto a fusionar.

Devuelve:



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.

Ejemplos:

Almacenar un valor en el selector.

selector.store(:key, "testing")

Parámetros:

  • clave (Cadena | Símbolo)

    El nombre del atributo.

  • valor (Objeto) -

    El valor a agregar.

Devuelve:

  • (Objeto) -

    El objeto almacenado.



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_pipelineArray<Hash>

Convierte el selector en una entrada de canalización de agregación.

Ejemplos:

Convierte el selector en una tubería.

selector.to_pipeline

Devuelve:

  • (Matriz<Hash>)

    La entrada de la tubería para el selector.



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