Classe: Mongo::Collection::View::MapReduce

Herda:
Objeto
  • Objeto
mostrar tudo
Estendido por:
Encaminhável
Inclui:
Enumerável, imutável, registrável, repetível
Definido em:
lib/mongo/collection/view/map_reduce.rb

Visão geral

Fornece comportamento em torno de uma operação de mapa/redução na visualização da coleção.

Desde:

  • 2.0.0

Colapsode resumo constante

INLINE =

A opção in-line.

Desde:

  • 2.1.0

'inline'.congelar
REVIAR =
Obsoleto.

Redirecionar mensagem.

Desde:

  • 2.1.0

'Reroteando a operação MapReduce para o servidor primário .'.congelar

Constantes incluídas do Loggable

Loggable::Prefix

Recolhimento do Resumo do atributo de instância

Atributos incluídos no Imutable

#options

Recolhimento do Resumo do método de instância

Métodos incluídos no Retryable

#read_worker, #select_server, #write_worker

Métodos incluídos no Loggable

#log_debug, #log_error, #log_fatal, #log_info, #log_WARN, #logger

Detalhes do construtor

#initialize(visualizar, mapear, reduzir, opções = {}) ➤ MapReduce

Inicialize o mapa/redução para a visualização, as funções e as opções de coleta fornecidas.

Exemplos:

Crie a nova visualização de mapa/redução.

Parâmetros:

  • vista (Collection::View)

    A visualização da collection.

  • map (string)

    A função de mapa.

  • reduzir (string)

    A função reduzir.

  • opções (Hash) (padrão para: {})

    As opções de mapear/reduzir.

Desde:

  • 2.0.0

[Ver fonte]

121
122
123
124
125
126
127
128
# File 'lib/mongo/collection/view/map_reduce.rb', linha 121

def inicializar(vista, map, reduzir, opções = {})
  @view = vista
  @map_function = map.dup.congelar
  @reduce_function = reduzir.dup.congelar
  @opções = BSON::Documento.Novo(opções).congelar

  Cliente.log_service('A operação map_reduce está obsoleta, use o pipeline de agregação')
end

Detalhes do atributo da instância

#map_function ➤ string (somente leitura)

Retorna map A função de mapa.

Retorna:

  • (string)

    map A função de mapa.

Desde:

  • 2.0.0


48
49
50
# File 'lib/mongo/collection/view/map_reduce.rb', linha 48

def map_function
  @map_function
end

#reduzir_function ➤ string (somente leitura)

Retorna a redução A função reduzir.

Retorna:

  • (string)

    reduzir A função reduzir.

Desde:

  • 2.0.0


51
52
53
# File 'lib/mongo/collection/view/map_reduce.rb', linha 51

def reduzir_function
  @reduce_function
end

#viewVisualizar (somente leitura)

Retorna a visualização A visualização da collection.

Retorna:

  • (Visualizar)

    visualização A visualização da collection.

Desde:

  • 2.0.0


45
46
47
# File 'lib/mongo/collection/view/map_reduce.rb', linha 45

def vista
  @view
end

Detalhes do método de instância

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

Iterar através de documentos retornados pelo mapa/redução.

Exemplos:

Iterar através do resultado do mapa/reduzir.

map_reduce.each do |document|
  p document
end

Parâmetros de rendimento:

  • Cada (Hash)

    documento correspondente.

Retorna:

  • (Enumerador)

    O enumerador.

Desde:

  • 2.0.0

[Ver fonte]

71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/mongo/collection/view/map_reduce.rb', linha 71

def cada
  @cursor = nada
  session = Cliente.get_session(@opções)
  Servidor = cluster.próximo_primary(nada, session)
  Contexto = (operação)::Contexto.Novo(cliente: Cliente, sessão: session, operation_timeouts: vista.operation_timeouts)
  se Servidor.load_balancer?
    # A conexão será verificada quando o cursor for drenado.
    Conexão = Servidor.pool.check_out(contexto: Contexto)
    Resultado = send_initial_query_with_connection(Conexão, Contexto.session, contexto: Contexto)
    Resultado = send_fetch_query_with_connection(Conexão, session) a menos que in-line?
  mais
    Resultado = send_initial_query(Servidor, Contexto)
    Resultado = send_fetch_query(Servidor, session) a menos que in-line?
  end
  @cursor = Cursor.Novo(vista, Resultado, Servidor, sessão: session)
  se block_given?
    @cursor.cada fazer |doc|
      rendimento doc
    end
  mais
    @cursor.to_enum
  end
end

#executeMongo::Operation::Result

Execute a redução do mapa, sem fazer uma query de busca para recuperar os resultados

if outputted to a collection.

Exemplos:

Execute a redução de mapa e obtenha o resultado bruto.

map_reduce.execute

Retorna:

Desde:

  • 2.5.0

[Ver fonte]

231
232
233
234
235
236
237
238
239
# File 'lib/mongo/collection/view/map_reduce.rb', linha 231

def executar, executar
  vista.enviar(:with_session, @opções) fazer |session|
    write_concern = vista.write_concern_with_session(session)
    Contexto = (operação)::Contexto.Novo(cliente: Cliente, sessão: session)
    nro_write_with_retry(write_concern, contexto: Contexto) fazer |Conexão, txn_num, Contexto|
      send_initial_query_with_connection(Conexão, session, contexto: Contexto)
    end
  end
end

#finalize(function = nil) ➤ MapReduce, string

Defina ou obtenha a função finalizar para a operação.

Exemplos:

Defina a função de finalização.

map_reduce.finalize(function)

Parâmetros:

  • function (string) (padrão para: nil)

    A função JavaScript de finalização.

Retorna:

  • (MapReduce, string)

    A nova operação MapReduce ou o valor da função.

Desde:

  • 2.0.0

[Ver fonte]

106
107
108
# File 'lib/mongo/collection/view/map_reduce.rb', linha 106

def finalizar(function = nada)
  configure(:finalize, function)
end

#js_mode(value = nil) ➤ MapReduce, ...

Defina ou obtenha o sinalizador jsMode para a operação.

Exemplos:

Defina o modo JavaScript para a operação.

map_reduce.js_mode(true)

Parâmetros:

  • valor (verdadeiro, falso) (padrão para: nil)

    O valor jsMode.

Retorna:

  • (MapReduce, true, false)

    A nova operação MapReduce ou o valor do sinalizador jsMode.

Desde:

  • 2.0.0

[Ver fonte]

141
142
143
# File 'lib/mongo/collection/view/map_reduce.rb', linha 141

def js_mode(valor = nada)
  configure(:js_mode, valor)
end

#out(location = nil) ➤ MapReduce, Hash

Defina ou obtenha o local de saída para a operação.

Exemplos:

Defina a saída como in-line.

map_reduce.out(inline: 1)

Defina a coleção de saída como mesclagem.

map_reduce.out(merge: 'users')

Defina a collection de saída como para substituir.

map_reduce.out(replace: 'users')

Defina a collection de saída como reduzida.

map_reduce.out(reduce: 'users')

Parâmetros:

  • localização (Hash) (padrão para: nil)

    Os detalhes do local de saída.

Retorna:

  • (MapReduce, Hash)

    A nova operação MapReduce ou o valor do local de saída.

Desde:

  • 2.0.0

[Ver fonte]

165
166
167
# File 'lib/mongo/collection/view/map_reduce.rb', linha 165

def out(localização = nada)
  configure(:out, localização)
end

#out_collection_nameObject

Retorna o nome da coleção em que o resultado da redução de mapa é gravado. Se o resultado for retornado in-line, retornará nulo.

Desde:

  • 2.0.0

[Ver fonte]

171
172
173
174
175
176
177
# File 'lib/mongo/collection/view/map_reduce.rb', linha 171

def out_collection_name
  se opções[:out].respond_to?(:keys)
    opções[:out][OUT_ACTIONS.find fazer |ação|
      opções[:out][ação]
    end]
  end || opções[:out]
end

#out_database_name ➤ Objeto

Retorna o nome do banco de dados em que o resultado da redução de mapa é gravado. Se o resultado for retornado in-line, retornará nulo.

Desde:

  • 2.0.0

[Ver fonte]

181
182
183
184
185
186
187
188
189
# File 'lib/mongo/collection/view/map_reduce.rb', linha 181

def out_database_name
  se opções[:out]
    se opções[:out].respond_to?(:keys) && (db = opções[:out][:db])
      db
    mais
      database.name
    end
  end
end

#scope(object = nil) ➤ MapReduce, Hash

Defina ou obtenha um escopo para a operação.

Exemplos:

Defina o valor do escopo.

map_reduce.scope(value: 'test')

Parâmetros:

  • objeto (Hash) (padrão para: nil)

    O objeto de escopo.

Retorna:

  • (MapReduce, Hash)

    A nova operação MapReduce ou o valor do escopo.

Desde:

  • 2.0.0

[Ver fonte]

202
203
204
# File 'lib/mongo/collection/view/map_reduce.rb', linha 202

def escopo(objeto = nada)
  configure(:scope, objeto)
end

#verbose(value = nil) ➤ MapReduce, Hash

Se incluir as informações de tempo no resultado.

Exemplos:

Defina o valor detalhado.

map_reduce.verbose(false)

Parâmetros:

  • valor (verdadeiro, falso) (padrão para: nil)

    Se incluir informações de tempo no resultado.

Retorna:

  • (MapReduce, Hash)

    A nova operação MapReduce ou o valor da opção verbose.

Desde:

  • 2.0.5

[Ver fonte]

218
219
220
# File 'lib/mongo/collection/view/map_reduce.rb', linha 218

def verbose(valor = nada)
  configure(:verbose, valor)
end