Clase: Mongo::Collection::View

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Enumerado, 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 query se envía al servidor cuando se invoca un “terminador”. Por ejemplo, al llamar a #each en un View, se crea un objeto cursor que luego envía la query al servidor.

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

Desde:

  • 2.0.0

Definido bajo Namespace

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

Resumen constante

Constantes incluidas de Writable

Writable::ARRAY_FILTERS

Constantes incluidas de Explicable

Explainable::ALL_PLANS_EXECUTION, Explainable::EXECUTION_STATS, Explainable::QUERY_PLANNER

Resumen de atributos de la instancia colapsar

Atributos incluidos de Mongo::CursorHost

#cursor, #timeout_mode

Atributos incluidos de Inmutable

#options

Resumen del método de instancia colapsar

Métodos incluidos de 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 Explicable

#explain

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 desde Iterable

#close_query, #each

Métodos incluidos desde Mongo::CursorHost

#validate_timeout_mode!

Detalles del constructor

#initialize(colección, filtro = {}, options = {}) ⇒ Ver

Crea un nuevo View.

Ejemplos:

Encuentra todos los usuarios llamados Emily.

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

Encuentra a todos los usuarios llamados Emily omitiendo 5 y devolviendo 10.

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

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

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

Parámetros:

  • Colección (colección)

    El Collection a consultar.

  • filtro (Hash) (por defecto: {})

    El filtro de consulta.

  • opciones (Hash) (por defecto: {})

    Las opciones de query adicionales.

Opciones Hash (options):

  • permite_uso_de_disco (verdadero, falso)

    Cuando se establece en true, el servidor puede guardar 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.

  • :batch_size (Entero)

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

  • :colación (Hash)

    La intercalación para usar.

  • :comment (Cadena)

    Relaciona un comentario con la query.

  • tipo_de_cursor (:tailable,:tailable_await)

    El tipo de cursor a utilizar.

  • :explain (Hash)

    Ejecute un explain con las opciones de explain proporcionadas (las opciones conocidas son :verbose y :nivel de verbosidad) en lugar de un find.

  • :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)

    Restringe la query para que solo escanee la cantidad especificada de documentos. Usar para evitar que las consultas se ejecuten por demasiado tiempo. Obsoleto a partir de la versión del servidor de MongoDB 4.0.

  • :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)

    El nivel de consistencia de lectura que se debe usar para la query.

  • :show_disk_loc (true | false)

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

  • Omitir (Entero)

    El número de documentos a omitir.

  • snapshot (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 (:cursor_lifetime | :iteration)

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

  • :timeout_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)

  @colección = Colección
  @operation_timeout_ms = opciones.borrar(:timeout_ms)

  validate_timeout_mode!(opciones)

  # Esto es cuando los usuarios pasan $query en el filtro y otros modificadores
  # junto?
  Consulta = filtro.borrar(Consulta de cifra ($query))
  # Esto hace que los modificadores contengan el filtro si el filtro no lo estaba
  # dado por $query pero como claves de nivel superior, presumiblemente
  # downstream code ignores non-modifier keys in the modifiers?
  modifiers = filtro.fusionar(opciones.borrar(:modifiers) || {})
  @filtro = (Consulta || filtro).freeze
  @options = Operación::buscar::desarrolladores::Modifiers.map_driver_options(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
  @colección
end

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

Devuelve el filtro de query.

Devuelve:

  • (encriptada)

    El filtro de consulta.

Desde:

  • 2.0.0



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

def filtro
  @filtro
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 | nil | 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 operation_timeout_ms
  @operation_timeout_ms
end

Detalles del método de instancia

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

Compara dos objetos View.

Ejemplos:

Comparar 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 menos que Otros.is_a?(vista)
  Colección == Otros.Colección &&
      filtro == Otros.filtro &&
      opciones == Otros.opciones
end

#hashInteger

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

Ejemplos:

Obtén el valor hash.

view.hash

Devuelve:

  • (Número 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

#inspectString

Obtén una representación en string legible por humanos de View.

Ejemplos:

Obtenga la inspección.

view.inspect

Devuelve:

  • (string)

    Una representación en string de una instancia de View.

Desde:

  • 2.0.0



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

def inspeccionar
  "#<Mongo::colección::View:0x#{object_id} namespace='#{colección.namespace}'" +
      " @filtro=#{filtro.to_s} @options=#{options.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 de timeout_ms establecido a nivel de la operación (si lo hay), y/o timeout_ms que se establece a nivel de colección/base de datos/cliente (si lo hay).

Devuelve:

  • (encriptada)

    valor timeout_ms establecido a nivel de operación (si lo hay) y/o timeout_ms establecido a nivel de colecció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 = {})
  {}.tocar hacer |Resultado|
    si opta[:timeout_ms] || operation_timeout_ms
      Resultado[:operation_timeout_ms] = opta[:timeout_ms] || operation_timeout_ms
    else
      Resultado[:tiempo de espera heredado_ms] = Colección.timeout_ms
    end
  end
end

#timeout_msInteger | nil

El valor de timeout_ms que se utilizará para esta operación; se puede especificar como una opción para la vista o heredarse de la colección.

Devuelve:

  • (Integer | nil)

    el timeout_ms para esta operación

Desde:

  • 2.0.0



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

def timeout_ms
  operation_timeout_ms || Colección.timeout_ms
end

#write_concernMongo::WriteConcern

Obtén el nivel de confirmación de escritura (write concern) en 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
  Nivel de confirmación de escritura (write concern).Obtener(opciones[:escribir_preocupación] || opciones[guardar] || Colección.escribir_preocupación)
end