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

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

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.

Ejemplos:

Fusionar con 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 |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.

Ejemplos:

Almacena un valor en el selector.

selector.store(:key, "testing")

Parámetros:

  • llave (String | 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(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_pipelineArray<Hash>

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

Ejemplos:

Convierte el selector en una pipeline.

selector.to_pipeline

Devuelve:

  • (arreglo<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 to_pipeline
  pipeline = []
  pipeline.push({ "$coincidencia" => sí mismo }) a menos que ¿vacío?
  pipeline
end