Módulo: Mongo::Collection::View::Iterable

Inclui:
Mongo::CursorHost
Incluído em:
Mongo::Collection::View, Aggregation::Comportamento
Definido em:
lib/mongo/collection/view/iterable.rb

Visão geral

Define o comportamento relacionado à iteração para visualizações de coleções, incluindo a instanciação do cursor.

Desde:

  • 2.0.0

Resumo do atributo de instância

Atributos incluídos do Mongo::CursorHost

#cursor, #timeout_mode

Recolhimento do Resumo do método de instância

Métodos incluídos do Mongo::CursorHost

#validate_timeout_mode!

Detalhes do método de instância

#close_query ➤ nil Também conhecido como: kill_cursors

Observação:

Esse método propaga quaisquer erros que ocorrem ao fechar o cursor do lado do servidor.

Limpa os recursos associados a esta query.

Se houver um cursor de servidor associado a esta query, ele será fechado enviando um comando KillCursors para o servidor.

Retorna:

  • (nil)

    Sempre nulo.

Aumenta:

  • (Erro::OperationFailure::Family)

    Se o fechamento do cursor do servidor falhar.

Desde:

  • 2.1.0



72
73
74
75
76
# File 'lib/mongo/collection/view/iterable.rb', linha 72

def close_query
  Método a menos que @cursor

  @cursor.Fechar
end

#cada {|Cada| ... } ➤ Enumerador

Iterar através de documentos retornados por uma query com este View.

Exemplos:

Iterar através do resultado da visualização.

view.each do |document|
  p document
end

Parâmetros de rendimento:

  • Cada (Hash)

    documento correspondente.

Retorna:

  • (Enumerador)

    O enumerador.

Desde:

  • 2.0.0



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/mongo/collection/view/iterable.rb', linha 41

def cada(&noum: bloco ; verb: bloquear)
  @cursor = prefer_cached_cursor? ? cached_cursor : new_cursor_for_iteration
  Método @cursor.to_enum a menos que block_given?

  limit_for_cached_query = compute_limit_for_cached_query

  # TODO: em vez de extrair todo o conjunto de resultados (limitado) para
  # memória, isso deve informar o cursor sobre o limite e depois deixar
  # o cursor limita a iteração conforme necessário.
  cursor_to_iterate = se limit_for_cached_query
                        @cursor.to_a[0...limit_for_cached_query]
                      mais
                        @cursor
                      end

  cursor_to_iterate.cada(&noum: bloco ; verb: bloquear)
end