Classe: Mongo::CashingCursor

Herda:
Cursor
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/cashing_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

Atributos herdados do cursor

#initial_result, #resume_token, #server, #view

Recolhimento do Resumo do método de instância

Métodos herdados do Cursor

#batch_size, #close, #closed?, #collection_name, finalize, #full_iterated?, #get_more, #id, #initialize, #kill_spec, #to_return

Métodos incluídos no Retryable

#read_worker, #select_server, #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.

Retorna:

  • (Array <BSON::Document>)

    Os documentos em cache do cursor.



28
29
30
# File 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', linha 28

def cached_docs
  @cached_docs
end

Detalhes do método de instância

#cada Objeto3

Iteramos sobre os documentos em cache se eles já existirem no cursor, caso contrário, prosseguiremos normalmente.

Exemplos:

Iterar sobre os documentos.

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


37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# File 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', linha 37

def cada
  se @cached_docs
    @cached_docs.cada fazer |doc|
      rendimento doc
    end

    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

#inspecionarstring

Obtenha uma representação de string legível por humanos de Cursor.

Exemplos:

Inspecione o cursor.

cursor.inspect

Retorna:

  • (string)

    Uma representação de string de uma instância do Cursor .



61
62
63
# File 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', linha 61

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.



69
70
71
72
73
74
75
# File 'build/ruby-driver-v2.19/lib/mongo/cashing_cursor.rb', linha 69

def try_next
  @cached_docs ||= []
  documento = super
  @cached_docs << documento se documento

  documento
end