Clase: Mongo::Collection::View::MapReduce

Hereda:
Objeto
  • Objeto
Mostrar todo
Ampliado por:
Reenviable
Incluye:
Enumerables, Inmutables, Registrables, Reintestables
Definido en:
lib/mongo/collection/view/map_reduce.rb

Overview

Proporciona un comportamiento en torno a una operación Map/Reduce en la vista de la colección.

Desde:

  • 2.0.0

Resumen de constantes colapsar

EN LÍNEA =

La opción en línea.

Desde:

  • 2.1.0

'en línea'
REDIRECCIONAMIENTO =
Obsoleto.

Redirigir mensaje.

Desde:

  • 2.1.0

'Redirigiendo la operación MapReduce al servidor principal'

Constantes incluidas desde Loggable

Loggable::PREFIX

Resumen de atributos de la instancia colapsar

Atributos incluidos de Inmutable

#options

Resumen del método de instancia colapsar

Métodos incluidos de Retryable

#read_worker, #select_server, #with_overload_retry, #write_worker

Métodos incluidos desde Registrable

#log_debug, #log_error, #log_fatal, #log_info, #log_warn, #logger

Detalles del Constructor

#initialize(vista, mapa, reducir, opciones = {}) ⇒ MapReduce

Inicializa el map/reduce para la vista de colección, funciones y opciones proporcionadas.

Ejemplos:

Crea la nueva vista de map/reduce.

Parámetros:

  • vista (Collection::View)

    La vista de colección.

  • map (string)

    La función map.

  • disminuir (string)

    La función reduce.

  • opciones (encriptada) (por defecto: {})

    Las opciones de map/reduce.

Desde:

  • 2.0.0



118
119
120
121
122
123
124
125
126
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 118

def inicializar(vista, map, disminuir, opciones = {})
  @view = vista
  @map_function = map.dup.freeze
  @reduce_function = disminuir.dup.freeze
  @options = BSON::Documento.Nuevo(opciones).freeze

  Obsolescencias.advertencia(reduce del mapa,
                    'La operación map_reduce está obsoleta, usa el pipeline de agregación en su lugar.')
end

Detalles de atributo de instancias

#map_functionString (solo lectura)

Retorna el mapa La función map.

Devuelve:

  • (string)

    map La función map.

Desde:

  • 2.0.0



46
47
48
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 46

def map_function
  @map_function
end

#reduce_functionString (solo lectura)

Retornos reduce La función reduce.

Devuelve:

  • (string)

    reduce La función reduce.

Desde:

  • 2.0.0



49
50
51
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 49

def reduce_function
  @reduce_function
end

#vistaVer (solo lectura)

Devuelve vista La vista de la colección.

Devuelve:

  • (Ver)

    ver La vista de colección.

Desde:

  • 2.0.0



43
44
45
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 43

def vista
  @view
end

Detalles del método de instancia

#each {|Each| ... } ⇒ Enumerator

Iterar a través de los documentos devueltos por el map/reduce.

Ejemplos:

Iterar a través del resultado del map/reduce.

map_reduce.each do |document|
  p document
end

Parámetros de rendimiento:

  • Cada uno (encriptada)

    documento coincidente.

Devuelve:

  • (Enumerator)

    El enumerador.

Desde:

  • 2.0.0



69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 69

def cada(&bloque)
  @cursor = nulo
  sesión = Cliente.get_session(@options)
  Server = clúster.siguiente_principal(nulo, sesión)
  context = Operación::Context.Nuevo(cliente: Cliente, sesión: sesión,
                                   operation_timeouts: vista.operation_timeouts)
  si Server.load_balancer?
    # La conexión se verificará cuando se termine con el cursor.
    Conexión = Server.group.check_out(context: context)
    Resultado = send_initial_query_with_connection(Conexión, context.sesión, context: context)
    Resultado = send_fetch_query_with_connection(Conexión, sesión) a menos que ¿en línea?
  else
    Resultado = send_initial_query(Server, context)
    Resultado = enviar_query_obtener(Server, sesión) a menos que ¿en línea?
  end
  @cursor = Cursor.Nuevo(vista, Resultado, Server, sesión: sesión)
  si ¿block_given?
    @cursor.cada(&bloque)
  else
    @cursor.to_enum
  end
end

#executeMongo::Operation::Result

Ejecuta el map reduce, sin realizar una consulta fetch para recuperar los resultados si se envían a una colección.

Ejemplos:

Ejecuta el map reduce y obtén el resultado en bruto.

map_reduce.execute

Devuelve:

Desde:

  • 2.5.0



229
230
231
232
233
234
235
236
237
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 229

def ejecutar
  vista.enviar(con_sesión, @options) hacer |sesión|
    write_concern = vista.write_concern_with_session(sesión)
    context = Operación::Context.Nuevo(cliente: Cliente, sesión: sesión)
    nro_write_with_retry(write_concern, context: context) hacer |Conexión, _txn_num, context|
      send_initial_query_with_connection(Conexión, sesión, context: context)
    end
  end
end

#finalizar(función = nil) ⇒ MapReduce, String

Establece u obtiene la función de finalización para la operación.

Ejemplos:

Configura la función Finalizar.

map_reduce.finalize(function)

Parámetros:

  • Función (string) (valor por defecto: nil)

    La función finalize js.

Devuelve:

  • (MapReduce, string)

    La nueva operación MapReduce o el valor de la función.

Desde:

  • 2.0.0



103
104
105
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 103

def finaliza(Función = nulo)
  Configurar(:finalize, Función)
end

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

Establezca u obtenga la bandera jsMode para la operación.

Ejemplos:

Establecer el modo js para la operación.

map_reduce.js_mode(true)

Parámetros:

  • Valor (verdadero, falso) (valor por defecto: nil)

    El valor jsMode.

Devuelve:

  • (MapReduce, verdadero, falso)

    La nueva operación MapReduce o el valor del indicador jsMode.

Desde:

  • 2.0.0



139
140
141
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 139

def js_mode(Valor = nulo)
  Configurar(:js_mode, Valor)
end

#salida(ubicación = nil) ⇒ MapReduce, Hash

Establece u obtén la ubicación de salida para la operación.

Ejemplos:

Configure la salida en línea.

map_reduce.out(inline: 1)

Establece la colección de salida para fusionar.

map_reduce.out(merge: 'users')

Establece la colección de salida para reemplazo.

map_reduce.out(replace: 'users')

Configura la colección de salida para reducir.

map_reduce.out(reduce: 'users')

Parámetros:

  • Ubicación (encriptada) (valor por defecto: nil)

    Los detalles de la ubicación de salida.

Devuelve:

  • (MapReduce, Hash)

    La nueva operación MapReduce o el valor de la ubicación de salida.

Desde:

  • 2.0.0



163
164
165
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 163

def salida(Ubicación = nulo)
  Configurar(Fin, Ubicación)
end

#out_collection_nameObject

Devuelve el nombre de la colección donde se escribe el resultado de map-reduce. Si el resultado se devuelve inline, retorna nil.

Desde:

  • 2.0.0



169
170
171
172
173
174
175
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 169

def out_collection_name
  si opciones[Fin].respond_to?(:llaves)
    opciones[Fin][ACCIONES_EXTERNAS.buscar hacer |acción|
      opciones[Fin][acción]
    end]
  end || opciones[Fin]
end

#out_database_nameObjeto

Devuelve el nombre de la base de datos donde se escriben los resultados de map-reduce. Si el resultado se devuelve inline, retorna nil.

Desde:

  • 2.0.0



179
180
181
182
183
184
185
186
187
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 179

def out_database_name
  return a menos que opciones[Fin]

  si opciones[Fin].respond_to?(:llaves) && (db = opciones[Fin][:db])
    db
  else
    database.Nombre
  end
end

#ámbito(objeto = nil) ⇒ MapReduce, Hash

Establece u obtiene un alcance en la operación.

Ejemplos:

Establezca el valor de ámbito.

map_reduce.scope(value: 'test')

Parámetros:

  • Objeto (encriptada) (valor por defecto: nil)

    El objeto scope.

Devuelve:

  • (MapReduce, Hash)

    La nueva operación MapReduce o el valor del scope.

Desde:

  • 2.0.0



200
201
202
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 200

def Alcance(Objeto = nulo)
  Configurar(:alcance, Objeto)
end

#verbose(valor = nil) ⇒ MapReduce, Hash

Si se debe incluir la información de la sincronización en el resultado.

Ejemplos:

Establece el valor detallado.

map_reduce.verbose(false)

Parámetros:

  • Valor (verdadero, falso) (valor por defecto: nil)

    Si se debe incluir la información de tiempo en el resultado.

Devuelve:

  • (MapReduce, Hash)

    La nueva operación MapReduce o el valor de la opción de detalle.

Desde:

  • 2.0.5



216
217
218
# Archivo 'lib/mongo/collection/view/map_reduce.rb', línea 216

def verbose(Valor = nulo)
  Configurar(:verbose, Valor)
end