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:
build/ruby-driver-v2.19/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



113
114
115
116
117
118
119
120
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 113

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 'build/ruby-driver-v2.19/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 'build/ruby-driver-v2.19/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 'build/ruby-driver-v2.19/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



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 71

def cada
  @cursor = nada
  session = Cliente.enviar(:get_session, @opções)
  Servidor = cluster.próximo_primary(nada, session)
  Resultado = send_initial_query(Servidor, session, contexto: (operação)::Contexto.Novo(cliente: Cliente, sessão: session))
  Resultado = send_fetch_query(Servidor, session) a menos que in-line?
  @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



223
224
225
226
227
228
229
230
231
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 223

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



98
99
100
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 98

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



133
134
135
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 133

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



157
158
159
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 157

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



163
164
165
166
167
168
169
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 163

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



173
174
175
176
177
178
179
180
181
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 173

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



194
195
196
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 194

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



210
211
212
# File 'build/ruby-driver-v2.19/lib/mongo/collection/view/map_reduce.rb', linha 210

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