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

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

Overview

El módulo opcional incluye todo el comportamiento relacionado con opciones extras en torno a las query, como omitir, limitar, ordenar, etc.

Resumen de atributos de la instancia colapsar

Resumen del método de clase colapsar

Resumen del método de instancia colapsar

Métodos incluidos en Macroable

llave

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
  @options
end

#opciones Las opciones de consulta.(Las opciones de consulta.) ⇒ objeto



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

attr_accessor :options

Detalles del método de clase

.forwardablesarreglo<Symbol>

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

Ejemplos:

Consigue los métodos transferibles.

Optional.forwardables

Devuelve:

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

    Los nombres de los métodos transferibles.



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

def reenviables
  public_instance_methods(false) - [ :options, Opciones ]
end

Detalles del método de instancia

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

Añadir opciones de orden ascendente para todos los campos proporcionados.

Ejemplos:

Agregar orden ascendente.

optional.ascending(:first_name, :last_name)

Parámetros:

  • *campo (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

#batch_size(valor = nil) ⇒ Opcional

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

Ejemplos:

Aplica las opciones de tamaño de agrupación.

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(:batch_size, Valor) }
end

#intercalación(collation_doc) ⇒ Opcional

Configura la intercalación.

Ejemplos:

Configura la intercalación.

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

Parámetros:

  • collation_doc (encriptada)

    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.tocar { |Consulta| Consulta.opciones.store(:colación, collation_doc) }
end

#comment(comment = nil) ⇒ Optional

Nota:

Configure el nivel de perfilado en 2 y el comentario se registrará en la colección de perfiles junto con la query.

Relaciona un comentario con la query.

Ejemplos:

Añade un comentario.

optional.comment('slow query')

Parámetros:

  • comment (Cadena) (predeterminado: nulo)

    El comentario que se asociará con la query.

Devuelve:



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

def comment(comment = nulo)
  clon.tocar 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 que se va a crear.

Devuelve:



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

def cursor_type(tipo)
  clon.tocar { |Consulta| Consulta.opciones.store(tipo_de_cursor, tipo) }
end

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

Agregar opciones de orden descendente para todos los campos proporcionados.

Ejemplos:

Añadir ordenación descendente.

optional.descending(:first_name, :last_name)

Parámetros:

  • *campo (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

#hint(valor = nil) ⇒ 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)

    El índice sugerido.

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("$limit" => 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:

Agregue el límite máximo de análisis.

optional.max_scan(1000)

Parámetros:

  • Valor (Entero) (predeterminado: nulo)

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

Devuelve:



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

def max_scan(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 el procesamiento de 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 procesamiento de 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(max_time_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.tocar { |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 solo(*args)
  args = args.nivelar
  opción(*args) hacer |opciones|
    opciones.store(
      campo,
      args.inyectar(opciones[campo] || {}){ |sub, Campo| sub.tocar { sub[Campo] = 1 }},
      false
    )
  end
end

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

Añade un criterio de clasificación a las opciones.

Ejemplos:

Agregar opciones de clasificación mediante 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)

Agrega opciones de ordenamiento mediante un hash con direcciones de tipo string.

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

Agrega opciones de ordenación mediante un arreglo con direcciones enteras.

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

Agrega opciones de ordenación a través de un arreglo con direcciones de símbolo.

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

Agregar opciones de ordenación mediante un arreglo con direcciones de tipo string.

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:

  • *spec ([ Array | Hash | String ]...)

    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|
        add_sort_option(opciones, Campo, dirección)
      end
      Consulta.pipeline.push("$sort" => opciones[:sort]) si ¿agregando?
    end
  end
end

#reorder(*spec) ⇒ Opcional

En lugar de combinar los criterios de orden, utiliza este método para reemplazar completamente el orden existente con el proporcionado.

Ejemplos:

Reemplazar el ordenamiento.

optional.reorder(name: :asc)

Parámetros:

  • *spec ([ Array | Hash | String ]...)

    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.tocar hacer |Consulta|
    Consulta.opciones.borrar(:sort)
  end.ordenar por(*especulación)
end

#skip(valor = nil) ⇒ Opcional También conocido como: offset

Agregar 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(Omitir, val)
    Consulta.pipeline.push("$saltar" => val) si ¿agregando?
  end
end

#slice(criterio = nil) ⇒ Opcional

Limite los resultados retornados mediante el corte de arreglos embebidos.

Ejemplos:

Segmenta los resultados devueltos.

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

Parámetros:

  • criterion (Hash) (predeterminado: nulo)

    Las opciones de porción.

Devuelve:



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

def rebanada(criterion = nulo)
  opción(criterion) hacer |opciones|
    opciones.__unión__(
      campo: criterion.inyectar({}) hacer |opción, (Campo, val)|
        opción.tocar { |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.tocar hacer |Consulta|
    Consulta.opciones.store(snapshot, true)
  end
end

#sin(*args) ⇒ Opcional

Restringe los resultados a que solo contengan los campos que no se proporcionan.

Ejemplos:

Limite los resultados a los campos no proporcionados.

optional.without(:name, :dob)

Parámetros:

  • *argumentos (Symbol...)

    El(los) campo(s) 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.nivelar
  opción(*args) hacer |opciones|
    opciones.store(
      campo,
      args.inyectar(opciones[campo] || {}){ |sub, Campo| sub.tocar { sub[Campo] = 0 }},
      false
    )
  end
end