sql >> Database >  >> NoSQL >> MongoDB

Mapreduce in mongodb ruby ​​native driver

Ik heb de reden gevonden en mijn nieuwe code is

# Map function which emits the two necessary fileds like key and value to perform our operations
    map = "function(){" +
    "emit(this.cust_id,this.amount);" +
    "}; "

    # Reduce function reduces the values as per logic and outputs with key and value
    reduce = "function(key,values){" +
    "return Array.sum(values);" +
    "}"

    # Check this link fore reference :- http://www.rubydoc.info/github/mongodb/mongo-ruby-driver/master/Mongo/Collection:map_reduce
    # a customizable set of options to perform map reduce functions
    opts =  {
    :query => 
    {
    "status" => "S"
    },
    # out specifies where we need to output the map reduce output.
    # if we specify simply a name in string like "order_totals" it creates a collection in that name 
    # and stores in that
    # if we need to store in a temp memory and needed as output we need to give {:inline => 1} ans
    # :raw => true
    # check link :- http://docs.mongodb.org/manual/reference/command/mapReduce/#mapreduce-out-cmd
    :out => {:inline => 1}, 
    :raw => true
    }           

    result = COLLECTION_MAPREDUCE.map_reduce(map,reduce,opts)
    result["results"].each do |obj|
    puts obj    
    puts "\n ------------"
    end

In opts moet ik de out en raw geven. Ik heb de linkhier

Deze code werkt prima.Bedankt.




  1. Sleutels verwijderen die overeenkomen met een patroon in Redis

  2. Retourdocument met max. subdocument

  3. Mongo hoe $op te zoeken met DBref

  4. JSR223 (Groovy) heeft geen toegang tot MongoDB (3.0.3) in Jmeter (2.13)