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 la misma query ya se ha ejecutado.

Resumen de atributos de la instancia colapsar

Atributos heredados de Cursor

#connection, #context, #initial_result, #resume_token, #servidor, #view

Resumen del método de instancia colapsar

Métodos heredados de Cursor

#batch_size, #close, #closed?, #collection_name, finalize, #fully_iterated?, #get_more, #id, #initialize, #kill_spec, #refresh_timeout!

Métodos incluidos de Retryable

#read_worker, #select_server, #with_overload_retry, #write_worker

Detalles del Constructor

Esta clase hereda un constructor de Mongo::Cursor

Detalles de atributo de instancias

#cached_docsarreglo <BSON::Document> (solo lectura)

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Devuelve los documentos almacenados en caché del cursor.

Devuelve:

  • (Array <BSON::Document>)

    Los documentos almacenados en caché del cursor.



25
26
27
# Archivo 'lib/mongo/caching_cursor.rb', línea 25

def cached_docs
  @cached_docs
end

Detalles del método de instancia

#each(&bloque) ⇒ Objeto

Iteramos sobre los documentos en caché si ya existen en el cursor; de lo contrario, procedemos como de costumbre.

Ejemplos:

Iterar sobre los documentos.

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


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# Archivo 'lib/mongo/caching_cursor.rb', línea 34

def cada(&bloque)
  si @cached_docs
    @cached_docs.cada(&bloque)

    a menos que ¿Cerrado?
      # StopIteration generado por try_next termina este ciclo.
      bucle hacer
        Documento = try_next
        rendimiento Documento si Documento
      end
    end
  else
    super
  end
end

#inspectString

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

Ejemplos:

Inspecciona el cursor.

cursor.inspect

Devuelve:

  • (string)

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



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

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

#try_nextObjeto

Este método es parte de una API privada. Se debe evitar el uso de este método 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.



64
65
66
67
68
69
70
# Archivo 'lib/mongo/caching_cursor.rb', línea 64

def try_next
  @cached_docs ||= []
  Documento = super
  @cached_docs << Documento si Documento

  Documento
end