sql >> Database teknologi >  >> NoSQL >> MongoDB

Mapreduce i mongodb ruby ​​native driver

Jeg fandt ud af årsagen, og min nye kode er

# 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

I opts skal jeg give ud og raw.i fik fra linkether

Denne kode fungerer fint. Tak.




  1. mongodb 3.x driver Android kompatibilitet

  2. Indstilling af standarddatabase for MongoDB shell

  3. Tilfældige dokumenter fra MongoDB ved hjælp af spring-data

  4. Mongodb tælle Dokumenter