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

Ampliado por:
Macroable
Incluido en:
Mongoid::Criteria::Queryable
Definido en:
lib/mongoid/criteria/queryable/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 de Macroable

llave

Detalles de atributo de instancias

#opcionesObjeto

Devuelve el valor de las opciones del atributo.



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

def opciones
  @options
end

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



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

attr_accessor :options

Detalles del método de clase

.forwardablesarreglo<Symbol>

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

Ejemplos:

Consigue los métodos transferibles.

Optional.forwardables

Devuelve:

  • (arreglo<Symbol>)

    Los nombres de los métodos transferibles.



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

def reenviables
  public_instance_methods(false) - %i[opciones 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...)

    Los campos a ordenar.

Devuelve:



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

def Ascendente(*Campos)
  ordenar_con_lista(*Campos, 1)
end

#batch_size(valor = nil) ⇒ Opcional

Añade la opción de indicar a MongoDB cuántos documentos recuperar en su agrupación por lotes.

Ejemplos:

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

optional.batch_size(500)

Parámetros:

  • Valor (Integer) (valor por defecto: nil)

    El tamaño del lote.

Devuelve:



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

def batch_size(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:



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

def intercalación(collation_doc)
  clonar.tocar { |Consulta| Consulta.opciones.store(intercalació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 (string) (valor por defecto: nil)

    El comentario que se asociará con la query.

Devuelve:



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

def comment(comment = nulo)
  clonar.tocar hacer |Consulta|
    Consulta.opciones.store(:comment, comment)
  end
end

#cursor_type(type) ⇒ Opcional

Nota:

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

Configura el tipo de cursor.

Ejemplos:

Configura 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:



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

def cursor_type(tipo)
  clonar.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:

Agrega ordenamiento descendente.

optional.descending(:first_name, :last_name)

Parámetros:

  • *campo (Symbol...)

    Los campos a ordenar.

Devuelve:



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

def Descendente(*Campos)
  ordenar_con_lista(*Campos, -1)
end

#hint(valor = nil) ⇒ Opcional

Agrega una sugerencia de índice a las opciones de query.

Ejemplos:

Add an index hint.

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

Parámetros:

  • Valor (encriptada) (valor por defecto: nil)

    El índice sugerido.

Devuelve:



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

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

#limit(value = nil) ⇒ Optional

Agregue la cantidad de documentos a limitar en los resultados devueltos.

Ejemplos:

Limitar el número de documentos devueltos.

optional.limit(20)

Parámetros:

  • Valor (Integer) (valor por defecto: nil)

    El número de documentos a devolver.

Devuelve:



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

def limit(Valor = nulo)
  Opción(Valor) hacer |opciones, Consulta|
    val = Valor.to_i
    opciones.store(:limit, val)
    Consulta.pipeline.push('$limit' => val) si ¿Agrupando?
  end
end

#max_scan(valor = nil) ⇒ Opcional

Obsoleto.

La opción max_scan está en desuso en MongoDB 4.0 y versiones posteriores. Utilice max_time_ms en su lugar.

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 (Integer) (valor por defecto: nil)

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

Devuelve:



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

def max_scan(Valor = nulo)
  Opción(Valor) { |opciones| opciones.store(max_scan, Valor) }
end

#max_time_ms(value = nil) ⇒ 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 (Integer) (valor por defecto: nil)

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

Devuelve:



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

def max_time_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:



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

def sin tiempo de espera
  clonar.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:

  • *args (Symbol...)

    El(los) campo(s) a devolver.

Devuelve:



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

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 ordenación a través de un hash con direcciones de símbolo.

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" ]])

Agrega opciones de organización con teclas.

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 ordenamiento.

Devuelve:



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

def ordenar_por(*especificación)
  Opción(especificación) hacer |opciones, Consulta|
    especificación.compact.cada hacer |criterion|
      criterion.__sort_option__.each_pair hacer |Campo, Instrucciones|
        add_sort_option(opciones, Campo, Instrucciones)
      end
      Consulta.pipeline.push('$sort' => opciones[:sort]) si ¿Agrupando?
    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:

Reemplaza la orden.

optional.reorder(name: :asc)

Parámetros:

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

    La especificación de ordenamiento.

Devuelve:



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

def reordenar(*especificación)
  clonar.tocar hacer |Consulta|
    Consulta.opciones.borrar(:sort)
  end.ordenar_por(*especificación)
end

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

Agregar el número de documentos a omitir.

Ejemplos:

Agregar el número a omitir.

optional.skip(100)

Parámetros:

  • Valor (Integer) (valor por defecto: nil)

    El número a omitir.

Devuelve:



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

def Omitir(Valor = nulo)
  Opción(Valor) hacer |opciones, Consulta|
    val = Valor.to_i
    opciones.store(Omitir, val)
    Consulta.pipeline.push('$skip' => val) si ¿Agrupando?
  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 (encriptada) (valor por defecto: nil)

    Las opciones de porción.

Devuelve:



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

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

#snapshotOpcional

Indique a la query que opere en modo snapshot.

Ejemplos:

Agrega la opción de snapshot.

optional.snapshot

Devuelve:



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

def snapshot
  clonar.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:

  • *args (Symbol...)

    El(los) campo(s) a ignorar.

Devuelve:



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

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