Classe: Mongo::CashingCursor
- Herda:
-
Cursor
- Objeto
- Cursor
- Mongo::CashingCursor
- Definido em:
- lib/mongo/caching_cursor.rb
Visão geral
Um cursor que tenta carregar documentos da memória primeiro antes de atingir o banco de dados se a mesma query já tiver sido executada.
Recolhimento do Resumo do atributo de instância
-
#cached_docs ➤ Array <BSON::Document>
Somente leitura
privado
Os documentos em cache do cursor.
Atributos herdados do cursor
#connection, #context, #initial_result, #resume_token, servidor, #view
Recolhimento do Resumo do método de instância
-
#cada(&bloco) ➤ Objeto
Iteramos sobre os documentos em cache se eles já existirem no cursor, caso contrário, prosseguiremos normalmente.
-
#inspecionar ➤ string
Obtenha uma representação de string legível por humanos de
Cursor. -
#try_next ➤ Objeto
privado
Adquire o próximo documento para iteração do cursor e, em seguida, insere esse documento na array @cached_docs.
Métodos herdados do Cursor
Métodos incluídos no Retryable
#read_worker, #select_server, #with_overload_retry, #write_worker
Detalhes do construtor
Esta classe herda um construtor do Mongo::Cursor
Detalhes do atributo da instância
#cached_docs ➤ Array <BSON::Document> (readonly)
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Retorna os documentos em cache do cursor.
25 26 27 |
# Arquivo 'lib/mongo/cashing_cursor.rb', linha 25 def cached_docs @cached_docs end |
Detalhes do método de instância
#cada(&bloco) ➤ Objeto
Iteramos sobre os documentos em cache se eles já existirem no cursor, caso contrário, prosseguiremos normalmente.
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# Arquivo 'lib/mongo/cashing_cursor.rb', linha 34 def cada(&noum: bloco ; verb: bloquear) se @cached_docs @cached_docs.cada(&noum: bloco ; verb: bloquear) a menos que fechado? # A StopIteration gerada por try_next encerra este loop. loop fazer documento = try_next rendimento documento se documento end end mais super end end |
#inspecionar ➤ string
Obtenha uma representação de string legível por humanos de Cursor.
56 57 58 |
# Arquivo 'lib/mongo/cashing_cursor.rb', linha 56 def inspecionar "#<Mongo::CashingCursor:0x#{object_id} @view=#{@view.inspect}>" end |
#try_next ➤ Objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Adquire o próximo documento para iteração do cursor e, em seguida, insere esse documento na array @cached_docs.
64 65 66 67 68 69 70 |
# Arquivo 'lib/mongo/cashing_cursor.rb', linha 64 def try_next @cached_docs ||= [] documento = super @cached_docs << documento se documento documento end |