Clase: Mongo::Collection::View

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Enumerable, Explicable, Inmutable, Iterable, Legible, Escribible
Definido en:
lib/mongo/collection/view.rb,
lib/mongo/collection/view/iterable.rb,
lib/mongo/collection/view/readable.rb,
lib/mongo/collection/view/writable.rb,
lib/mongo/collection/view/immutable.rb,
lib/mongo/collection/view/map_reduce.rb,
lib/mongo/collection/view/aggregation.rb,
lib/mongo/collection/view/explainable.rb,
lib/mongo/collection/view/change_stream.rb,
lib/mongo/collection/view/builder/map_reduce.rb,
lib/mongo/collection/view/builder/aggregation.rb,
lib/mongo/collection/view/aggregation/behavior.rb,
lib/mongo/collection/view/change_stream/retryable.rb

Overview

Nota:

La API View es semipública.

Representación de una query y opciones que produce un conjunto de resultados de documentos.

Se puede modificar un View utilizando asistentes. Los asistentes pueden encadenarse, ya que cada uno devuelve un View si se proporcionan argumentos.

El mensaje de consulta se envía al servidor cuando se llama a un "terminador". Por ejemplo, al llamar a #each en un View, se crea un objeto Cursor, que envía la consulta al servidor.

Un View no lo crea directamente el usuario. En cambio, View crea un View cuando se ejecuta una operación CRUD y lo devuelve al usuario para que interactúe con él.

Desde:

  • 2.0.0

Definido en el espacio de nombres

Modules: Clases constructoras, explicables, inmutables, iterables, legibles y escribibles: agregación, flujo de cambios, MapReduce

Resumen constante

Constantes incluidas desde Writable

Escribible::ARRAY_FILTERS

Constantes incluidas de Explainable

Explicable::TODOS_LOS_PLANES_EJECUCIÓN, Explicable::ESTADÍSTICAS_DE_EJECUCIÓN, Explicable::PLANIFICADOR_DE_CONSULTAS

Colapso delresumen de atributos de instancia

Atributos incluidos desde Mongo::CursorHost

#cursor, #timeout_mode

Atributos incluidos de Immutable

#options

Colapso del resumen del método de instancia

Métodos incluidos en Writable

#delete_many, #delete_one, #find_one_and_delete, #find_one_and_replace, #find_one_and_update, #replace_one, #update_many, #update_one

Métodos incluidos en Explainable

#explicar

Métodos incluidos en Readable

#agregado, #permitir_uso_de_disco, #permitir_resultados_parciales, #esperar_datos, #tamaño_de_lote, #comentario, #contar, #contar_documentos, #tipo_de_cursor, #distinto, #conteo_estimado_de_documentos, #pista, #límite, #reducción_de_mapa, #tiempo_máximo_de_espera_ms, #escaneo_máximo, #tiempo_máximo_ms, #valor_máximo, #valor_mín, #modificadores, #sin_tiempo_de_espera_del_cursor, #escaneo_paralelo, #proyección, #leer, #preocupación_de_lectura, #preferencia_de_lectura, #tecla_de_retorno, #mostrar_ubicación_de_disco, #omitir, #instantánea, #ordenar

Métodos incluidos de Iterable

#cerrar_consulta, #cada

Métodos incluidos desde Mongo::CursorHost

#validate_timeout_mode!

Detalles del constructor

#inicializar(colección, filtro = {}, opciones = {}) ⇒ Ver

Crea un nuevo View.

Ejemplos:

Encuentra todos los usuarios llamados Emily.

View.new(collection, {:name => 'Emily'})

Encuentra todos los usuarios llamados Emily saltando 5 y devolviendo 10.

View.new(collection, {:name => 'Emily'}, :skip => 5, :limit => 10)

Encuentre todos los usuarios llamados Emily usando una preferencia de lectura específica.

View.new(collection, {:name => 'Emily'}, :read => :secondary_preferred)

Parámetros:

  • Colección (Recopilación) -

    El Collection a consultar.

  • filtro (Hash) (predeterminado: {})

    El filtro de consulta.

  • opciones (Hash) (predeterminado: {})

    Las opciones de consulta adicionales.

Opciones Hash(opciones):

  • :permitir_uso_de_disco (verdadero,falso)

    Cuando se establece como verdadero, el servidor puede escribir datos temporales en el disco mientras ejecuta la operación de búsqueda. Esta opción solo está disponible en las versiones 4.4 y posteriores del servidor MongoDB.

  • :tamaño_del_lote (Entero)

    La cantidad de documentos que se devolverán en cada respuesta de MongoDB.

  • :colación (Hash)

    La intercalación a utilizar.

  • :comment (Cadena)

    Asociar un comentario a la consulta.

  • :tipo_de_cursor (:tailable,:tailable_await)

    El tipo de cursor a utilizar.

  • :explicar (Hash)

    Ejecute una explicación con las opciones de explicación proporcionadas (las opciones conocidas son :verbose y :verbosity) en lugar de una búsqueda.

  • :hint (Hash)

    Anula la selección de índice por defecto y fuerza a MongoDB a utilizar un índice específico para la query.

  • :limit (Entero)

    Número máximo de documentos a devolver.

  • :máximo_escaneo (Entero)

    Limite la consulta para que solo escanee el número especificado de documentos. Úselo para evitar que las consultas se ejecuten durante demasiado tiempo. Obsoleto a partir de la versión 4.0 del servidor MongoDB.

  • :proyección (Hash)

    Los campos a incluir o excluir en los documentos devueltos.

  • :leer (Hash)

    La preferencia de lectura que se usará para la consulta. Si no se proporciona ninguna, se utiliza la preferencia de lectura predeterminada de la colección.

  • :read_concern (Hash)

    La lectura se refiere a utilizar para la consulta.

  • :show_disk_loc (true | false)

    Devuelve la información de ubicación del disco como un campo en cada documento.

  • :saltar (Entero)

    El número de documentos a omitir.

  • :instantánea (true | false)

    Evita que un documento se devuelva más de una vez. Obsoleto a partir de la versión 4.0 del servidor MongoDB.

  • :sort (Hash)

    Los pares de clave y dirección utilizados para ordenar los resultados.

  • :timeout_mode (:tiempo de vida del cursor |:iteración)

    Cómo interpretar :timeout_ms (si se aplica a la vida útil del cursor o por iteración).

  • :tiempo de espera_ms (Entero)

    El tiempo de espera de la operación en milisegundos. Debe ser un número entero no negativo. Un valor explícito de 0 significa infinito. El valor por defecto no está establecido, lo que significa que se hereda de la colección, la base de datos o el cliente.

Desde:

  • 2.0.0



169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
# Archivo 'lib/mongo/collection/view.rb', línea 169

def inicializar(Colección, filtro = {}, opciones = {})
  validate_doc!(filtro)

  filtro = BSON::Documento.Nuevo(filtro)
  opciones = BSON::Documento.Nuevo(opciones)

  @recopilación = Colección
  @tiempo_de_espera_de_operación_ms = opciones.borrar(:tiempo de espera_ms)

  validate_timeout_mode!(opciones)

  # Esto es cuando los usuarios pasan $query en el filtro y otros modificadores
  # ¿al lado?
  Consulta = filtro.borrar(:$consulta)
  # Esto hace que los modificadores contengan el filtro si el filtro no estaba
  # proporcionado a través de $query pero como claves de nivel superior, presumiblemente
  # downstream code ignores non-modifier keys in the modifiers?
  modifiers = filtro.unir(opciones.borrar(:modifiers) || {})
  @filtrar = (Consulta || filtro).freeze
  @opciones = Operación::Buscar::Builder::Modifiers.opciones del controlador de mapas(modifiers).¡unir!(opciones).freeze
end

Detalles de los atributos de instancia

#colecciónColección (solo lectura)

Devuelve el Collection a consultar.

Devuelve:

Desde:

  • 2.0.0



56
57
58
# Archivo 'lib/mongo/collection/view.rb', línea 56

def Colección
  @recopilación
end

#filtroHash (solo lectura) También conocido como: selector

Devuelve el filtro de consulta.

Devuelve:

  • (Hash)

    El filtro de consulta.

Desde:

  • 2.0.0



59
60
61
# Archivo 'lib/mongo/collection/view.rb', línea 59

def filtro
  @filtrar
end

#operation_timeout_msInteger | nil | El valor de timeout_ms que se pasó como una opción a view. (solo lectura)

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve un entero | nulo | El valor timeout_ms que se pasó como opción a la vista.

Devuelve:

  • (Integer | nil | El valor timeout_ms que se pasó como opción a view.)

    Entero | nulo | El valor timeout_ms que se pasó como opción a la vista.

Desde:

  • 2.0.0



81
82
83
# Archivo 'lib/mongo/collection/view.rb', línea 81

def tiempo de espera de operación_ms
  @tiempo_de_espera_de_operación_ms
end

Detalles del método de instancia

#==(otro) ⇒ verdadero, falso También conocido como: eql?

Comparar dos objetos View.

Ejemplos:

Compara la vista con otro objeto.

view == other

Devuelve:

  • (verdadero,falso)

    Igual si la colección, el filtro y las opciones de dos View coinciden.

Desde:

  • 2.0.0



92
93
94
95
96
97
# Archivo 'lib/mongo/collection/view.rb', línea 92

def ==(otros)
  return false a no ser que otros.is_a?(vista)
  Colección == otros.Colección &&
      filtro == otros.filtro &&
      opciones == otros.opciones
end

#hashEntero

Un valor hash para View compuesto por el espacio de nombres de la colección, el hash de las opciones y el hash del filtro.

Ejemplos:

Obtenga el valor hash.

view.hash

Devuelve:

  • (Entero)

    Un valor hash del objeto View.

Desde:

  • 2.0.0



109
110
111
# Archivo 'lib/mongo/collection/view.rb', línea 109

def hash
  [ Colección.namespace, opciones.hash, filtro.hash ].hash
end

#inspeccionarCadena

Obtenga una representación de cadena legible por humanos de View.

Ejemplos:

Obtenga la inspección.

view.inspect

Devuelve:

  • (Cadena) -

    Una representación de cadena de una instancia View.

Desde:

  • 2.0.0



207
208
209
210
# Archivo 'lib/mongo/collection/view.rb', línea 207

def inspeccionar
  "#<Mongo::Collection::View:0x#{object_id} espacio denombres='#{ colección.espacio de nombres}' " +
      " @filter=#{filtro.to_s} @options=#{opciones.to_s}>"
end

#tiempos_de_espera_de_operación(opciones = {}) ⇒ Hash

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve el valor timeout_ms establecido en el nivel de operación (si lo hay) y/o el timeout_ms establecido en el nivel de colección/base de datos/cliente (si lo hay).

Devuelve:

  • (Hash)

    valor timeout_ms establecido en el nivel de operación (si lo hay) y/o timeout_ms establecido en el nivel de recopilación/base de datos/cliente (si lo hay).

Desde:

  • 2.0.0



228
229
230
231
232
233
234
235
236
# Archivo 'lib/mongo/collection/view.rb', línea 228

def tiempos de espera de operación(opta = {})
  {}.grifo hacer |resultado|
    Si opta[:tiempo de espera_ms] || tiempo de espera de operación_ms
      resultado[:tiempo de espera_de_operación_ms] = opta[:tiempo de espera_ms] || tiempo de espera de operación_ms
    else
      resultado[:tiempo de espera heredado_ms] = Colección.tiempo de espera_ms
    end
  end
end

#timeout_msInteger | nil

El valor timeout_ms que se utilizará para esta operación, ya sea especificado como una opción para la vista o heredado de la colección.

Devuelve:

  • (Integer | nil)

    el tiempo de espera_ms para esta operación

Desde:

  • 2.0.0



195
196
197
# Archivo 'lib/mongo/collection/view.rb', línea 195

def tiempo de espera_ms
  tiempo de espera de operación_ms || Colección.tiempo de espera_ms
end

#escribir_preocupaciónMongo::WriteConcern

Obtenga la preocupación escrita sobre este View.

Ejemplos:

Obtenga la preocupación escrita.

view.write_concern

Devuelve:

Desde:

  • 2.0.0



220
221
222
# Archivo 'lib/mongo/collection/view.rb', línea 220

def escribir_preocupación
  Escribir preocupación.Obtener(opciones[:escribir_preocupación] || opciones[:escribir] || Colección.escribir_preocupación)
end