Clase: Mongo::CachingCursor

Hereda:
Cursor
  • Objeto
Mostrar todo
Definido en:
lib/mongo/caching_cursor.rb

Overview

Un cursor que intenta cargar documentos desde la memoria primero antes de acceder a la base de datos si ya se ha ejecutado la misma consulta.

Colapso delresumen de atributos de instancia

Atributos heredados de Cursor

#conexión, #contexto, #resultado_inicial, #token_de_reanudación, #servidor, #vista

Colapso del resumen del método de instancia

Métodos heredados de Cursor

#tamaño_de_lote, #cerrar, #¿cerrado?, #nombre_de_colección,finalizar, #¿completamente_iterado?, #obtener_más, #id, #inicializar, #eliminar_especificación, #para_regresar

Métodos incluidos en Retryable

#trabajador_de_lectura, #servidor_de_selección, #trabajador_de_escritura

Detalles del constructor

Esta clase hereda un constructor de Mongo::Cursor

Detalles de los atributos de instancia

#cached_docsMatriz <BSON::Document> (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 los documentos almacenados en caché del cursor.

Devuelve:

  • (Matriz <BSON::Document>)

    Los documentos almacenados en caché del cursor.



28
29
30
# Archivo 'lib/mongo/caching_cursor.rb', línea 28

def cached_docs
  @cached_docs
end

Detalles del método de instancia

#cadaObjeto

Iteramos sobre los documentos almacenados en caché si ya existen en el cursor; de lo contrario, procedemos de manera normal.

Ejemplos:

Iterar sobre los documentos.

cursor.each do |doc|
  # ...
end


37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Archivo 'lib/mongo/caching_cursor.rb', línea 37

def cada
  Si @cached_docs
    @cached_docs.cada hacer |doc|
      rendimiento doc
    end

    a no ser que ¿cerrado?
      # StopIteration generado por try_next finaliza este bucle.
      bucle hacer
        Documento = try_next
        rendimiento Documento Si Documento
      end
    end
  else
    Super
  end
end

#inspeccionarCadena

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

Ejemplos:

Inspeccione el cursor.

cursor.inspect

Devuelve:

  • (Cadena) -

    Una representación de cadena de una instancia Cursor.



61
62
63
# Archivo 'lib/mongo/caching_cursor.rb', línea 61

def inspeccionar
  "#<Mongo::CachingCursor:0x#{object_id} @view=#{@view.inspect }>"
end

#try_nextObjeto

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

Obtiene el siguiente documento para la iteración del cursor y luego inserta ese documento en el arreglo @cached_docs.



69
70
71
72
73
74
75
# Archivo 'lib/mongo/caching_cursor.rb', línea 69

def try_next
  @cached_docs ||= []
  Documento = Super
  @cached_docs << Documento Si Documento

  Documento
end