Módulo: Mongoid::Criteria::Queryable::Optional

Ampliado por:
Macrosable
Incluido en:
Mongoid::Criterios::Consultable
Definido en:
lib/mongoid/criterios/consultable/opcional.rb

Overview

El módulo opcional incluye todo el comportamiento que tiene que ver con opciones adicionales relacionadas con las consultas, como omitir, limitar, ordenar, etc.

Colapso delresumen de atributos de instancia

Colapso delresumen del método de clase

Colapso del resumen del método de instancia

Métodos incluidos en Macroable

clave

Detalles de los atributos de instancia

#opcionesObjeto

Devuelve el valor de las opciones de atributo.



14
15
16
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 14

def opciones
  @opciones
end

#opciones Las opciones de consulta.(Thequeryoptions.) ⇒ Objeto



14
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 14

attr_accessor :opciones

Detalles del método de clase

.forwardables ⇒ Matriz<Símbolo><Symbol>

Obtenga los métodos opcionales que se pueden reenviar desde un modelo.

Ejemplos:

Obtenga los métodos reenviables.

Optional.forwardables

Devuelve:

  • (Matriz<Símbolo><Symbol>)

    Los nombres de los métodos reenviables.



374
375
376
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 374

def reenviables
  public_instance_methods(false) - [ :opciones, :opciones= ]
end

Detalles del método de instancia

#ascendente(*campos) ⇒ Opcional También conocido como: asc

Agregue opciones de clasificación ascendente para todos los campos proporcionados.

Ejemplos:

Añadir ordenación ascendente.

optional.ascending(:first_name, :last_name)

Parámetros:

  • *campos (Symbol...)

    El(los) campo(s) a ordenar.

Devuelve:



24
25
26
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 24

def ascendente(*campos)
  ordenar_con_lista(*campos, 1)
end

#tamaño_lote(valor = nulo) ⇒ Opcional

Agrega la opción para indicarle a MongoDB cuántos documentos recuperar en su procesamiento por lotes.

Ejemplos:

Aplicar las opciones de tamaño de lote.

optional.batch_size(500)

Parámetros:

  • valor (Entero) (predeterminado: nulo)

    El tamaño del lote.

Devuelve:



40
41
42
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 40

def tamaño del lote(valor = nulo)
  opción(valor) { |opciones| opciones.store(:tamaño_del_lote, valor) }
end

#intercalación(collation_doc) ⇒ Opcional

Establecer la intercalación.

Ejemplos:

Establecer la intercalación.

optional.collation(locale: 'fr', strength: 2)

Parámetros:

  • collation_doc (Hash)

    El documento que describe la intercalación a utilizar.

Devuelve:



303
304
305
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 303

def intercalación(collation_doc)
  clon.grifo { |Consulta| Consulta.opciones.store(:colación, collation_doc) }
end

#comment(comment = nil) ⇒ Optional

Nota:

Establezca profilingLevel en 2 y el comentario se registrará en la colección de perfiles junto con la consulta.

Asociar un comentario a la consulta.

Ejemplos:

Añade un comentario.

optional.comment('slow query')

Parámetros:

  • comment (Cadena) (predeterminado: nulo)

    El comentario que se asociará con la consulta.

Devuelve:



274
275
276
277
278
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 274

def comment(comment = nulo)
  clon.grifo hacer |Consulta|
    Consulta.opciones.store(:comment, comment)
  end
end

#cursor_type(tipo) ⇒ Opcional

Nota:

El cursor puede ser de tipo :tailable o :tailable_await.

Establecer el tipo de cursor.

Ejemplos:

Establecer el tipo de cursor.

optional.cursor_type(:tailable)
optional.cursor_type(:tailable_await)

Parámetros:

  • tipo ( Símbolo) -

    El tipo de cursor a crear.

Devuelve:



291
292
293
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 291

def tipo_de_cursor(tipo)
  clon.grifo { |Consulta| Consulta.opciones.store(:tipo_de_cursor, tipo) }
end

#descendente(*campos) ⇒ Opcional También conocido como: desc

Agregue opciones de clasificación descendente para todos los campos proporcionados.

Ejemplos:

Añadir ordenación descendente.

optional.descending(:first_name, :last_name)

Parámetros:

  • *campos (Symbol...)

    El(los) campo(s) a ordenar.

Devuelve:



52
53
54
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 52

def descendente(*campos)
  ordenar_con_lista(*campos, -1)
end

#pista(valor = nulo) ⇒ Opcional

Añade una sugerencia de índice a las opciones de consulta.

Ejemplos:

Add an index hint.

optional.hint("$natural" => 1)

Parámetros:

  • valor (Hash) (predeterminado: nulo)

    La pista del índice.

Devuelve:



67
68
69
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 67

def hint(valor = nulo)
  opción(valor) { |opciones| opciones.store(:hint, valor) }
end

#limit(value = nil) ⇒ Optional

Agregue el número de documentos a limitar en los resultados devueltos.

Ejemplos:

Limitar el número de documentos devueltos.

optional.limit(20)

Parámetros:

  • valor (Entero) (predeterminado: nulo)

    El número de documentos a devolver.

Devuelve:



79
80
81
82
83
84
85
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 79

def limit(valor = nulo)
  opción(valor) hacer |opciones, Consulta|
    val = valor.to_i
    opciones.store(:limit, val)
    Consulta.pipeline.Push("$límite" => val) Si ¿agregando?
  end
end

#max_scan(valor = nil) ⇒ Opcional

Agrega la opción de limitar la cantidad de documentos escaneados en la colección.

Ejemplos:

Añade el límite máximo de escaneo.

optional.max_scan(1000)

Parámetros:

  • valor (Entero) (predeterminado: nulo)

    El número máximo de documentos a escanear.

Devuelve:



96
97
98
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 96

def escaneo máximo(valor = nulo)
  opción(valor) { |opciones| opciones.store(:máximo_escaneo, valor) }
end

#max_time_ms(valor = nulo) ⇒ Opcional

Agrega un límite de tiempo acumulativo en milisegundos para procesar operaciones en un cursor.

Ejemplos:

Agrega la opción de tiempo máximo en ms.

optional.max_time_ms(200)

Parámetros:

  • valor (Entero) (predeterminado: nulo)

    El tiempo máximo en milisegundos para procesar operaciones en un cursor.

Devuelve:



108
109
110
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 108

def tiempo máximo_ms(valor = nulo)
  opción(valor) { |opciones| opciones.store(:tiempo máximo_ms, valor) }
end

#no_timeoutOpcional

Indique a la query que no caduque.

Ejemplos:

Indique a la query que no caduque.

optional.no_timeout

Devuelve:



118
119
120
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 118

def sin_tiempo_de_espera
  clon.grifo { |Consulta| Consulta.opciones.store(:timeout, false) }
end

#solo(*args) ⇒ Opcional

Limita los resultados para que solo contengan los campos proporcionados.

Ejemplos:

Limite los resultados a los campos proporcionados.

optional.only(:name, :dob)

Parámetros:

  • *argumentos (Symbol...)

    El(los) campo(s) a devolver.

Devuelve:



130
131
132
133
134
135
136
137
138
139
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 130

def sólo(*args)
  args = args.aplanar
  opción(*args) hacer |opciones|
    opciones.store(
      :campos,
      args.inyectar(opciones[:campos] || {}){ |sub, Campo| sub.grifo { sub[Campo] = 1 }},
      false
    )
  end
end

#order_by(*spec) ⇒ Opcional También conocido como: order

Añade criterios de clasificación a las opciones.

Ejemplos:

Agregue opciones de clasificación a través de un hash con direcciones enteras.

optional.order_by(name: 1, dob: -1)

Agregue opciones de clasificación a través de un hash con direcciones de símbolos.

optional.order_by(name: :asc, dob: :desc)

Agregue opciones de clasificación a través de un hash con direcciones de cadena.

optional.order_by(name: "asc", dob: "desc")

Agregue opciones de clasificación a través de una matriz con direcciones enteras.

optional.order_by([[ name, 1 ], [ dob, -1 ]])

Agregue opciones de clasificación a través de una matriz con direcciones de símbolos.

optional.order_by([[ :name, :asc ], [ :dob, :desc ]])

Agregue opciones de clasificación a través de una matriz con direcciones de cadena.

optional.order_by([[ "name", "asc" ], [ "dob", "desc" ]])

Añade opciones de clasificación con claves.

optional.order_by(:name.asc, :dob.desc)

Agregue opciones de ordenación mediante una string.

optional.order_by("name ASC, dob DESC")

Parámetros:

  • *especulación ([ Matriz | Hash | Cadena ]... ) —

    La especificación de clasificación.

Devuelve:



170
171
172
173
174
175
176
177
178
179
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 170

def ordenar por(*especulación)
  opción(especulación) hacer |opciones, Consulta|
    especulación.compact.cada hacer |criterion|
      criterion.__sort_option__.each_pair hacer |Campo, dirección|
        añadir_opción_de_clasificación(opciones, Campo, dirección)
      end
      Consulta.pipeline.Push("$ordenar" => opciones[:sort]) Si ¿agregando?
    end
  end
end

#reordenar(*especificación) ⇒ Opcional

En lugar de fusionar los criterios de pedido, utilice este método para reemplazar completamente el pedido existente con el proporcionado.

Ejemplos:

Reemplazar el ordenamiento.

optional.reorder(name: :asc)

Parámetros:

  • *especulación ([ Matriz | Hash | Cadena ]... ) —

    La especificación de clasificación.

Devuelve:



191
192
193
194
195
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 191

def reordenar(*especulación)
  clon.grifo hacer |Consulta|
    Consulta.opciones.borrar(:sort)
  end.ordenar por(*especulación)
end

#skip(valor = nulo) ⇒ Opcional También conocido como: desplazamiento

Añade el número de documentos a omitir.

Ejemplos:

Añade el número a omitir.

optional.skip(100)

Parámetros:

  • valor (Entero) (predeterminado: nulo)

    El número a omitir.

Devuelve:



205
206
207
208
209
210
211
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 205

def Omitir(valor = nulo)
  opción(valor) hacer |opciones, Consulta|
    val = valor.to_i
    opciones.store(:saltar, val)
    Consulta.pipeline.Push("$saltar" => val) Si ¿agregando?
  end
end

# rebanada(criterio = nulo) ⇒ Opcional

Limite los resultados retornados mediante el corte de arreglos embebidos.

Ejemplos:

Cortar los resultados devueltos.

optional.slice(aliases: [ 0, 5 ])

Parámetros:

  • criterion (Hash) (predeterminado: nulo)

    Las opciones de corte.

Devuelve:



222
223
224
225
226
227
228
229
230
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 222

def segmento(criterion = nulo)
  opción(criterion) hacer |opciones|
    opciones.__unión__(
      campos: criterion.inyectar({}) hacer |opción, (Campo, val)|
        opción.grifo { |opt| opt.store(Campo, { "$slice" => val }) }
      end
    )
  end
end

# instantánea⇒ Opcional

Indique a la consulta que funcione en modo instantánea.

Ejemplos:

Añade la opción de instantánea.

optional.snapshot

Devuelve:



238
239
240
241
242
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 238

def snapshot
  clon.grifo hacer |Consulta|
    Consulta.opciones.store(:instantánea, true)
  end
end

#sin(*args) ⇒ Opcional

Limita los resultados para que solo contengan los campos no proporcionados.

Ejemplos:

Limitar los resultados a los campos no proporcionados.

optional.without(:name, :dob)

Parámetros:

  • *argumentos (Symbol...)

    Los campos a ignorar.

Devuelve:



252
253
254
255
256
257
258
259
260
261
# Archivo 'lib/mongoid/criteria/queryable/optional.rb', línea 252

def sin(*args)
  args = args.aplanar
  opción(*args) hacer |opciones|
    opciones.store(
      :campos,
      args.inyectar(opciones[:campos] || {}){ |sub, Campo| sub.grifo { sub[Campo] = 0 }},
      false
    )
  end
end