class Mongo::Operation::Commands::MapReduce

A MongoDB map reduce operation.

@note A map/reduce operation can behave like a read and

return a result set, or can behave like a write operation and
output results to a user-specified collection.

@example Create the map/reduce operation.

MapReduce.new({
  :selector => {
    :mapreduce => 'test_coll',
    :map => '',
    :reduce => ''
  },
  :db_name  => 'test_db'
})

Initialization:

param [ Hash ] spec The specifications for the operation.

option spec :selector [ Hash ] The map reduce selector.
option spec :db_name [ String ] The name of the database on which
  the operation should be executed.
option spec :options [ Hash ] Options for the map reduce command.

@since 2.0.0

Private Instance Methods

message(server) click to toggle source
# File lib/mongo/operation/commands/map_reduce.rb, line 50
def message(server)
  sel = update_selector_for_write_concern(selector, server)
  if server.features.op_msg_enabled?
    command_op_msg(server, sel, options)
  else
    sel = update_selector_for_read_pref(sel, server)
    opts = update_options_for_slave_ok(options, server)
    Protocol::Query.new(db_name, query_coll, sel, opts)
  end
end