sql >> Databasteknik >  >> NoSQL >> MongoDB

Mapreduce i mongodb ruby ​​infödd drivrutin

Jag kom på orsaken och min nya kod är

# 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 måste jag ge ut och raw.i fick från länkenhär

Den här koden fungerar bra. Tack.




  1. De 10 bästa MongoDB-värdplattformarna

  2. Hur konverterar jag en egenskap i MongoDB från text till datumtyp?

  3. MongoDB:Använder matchning med indatadokumentvariabler

  4. hur man autentiserar mongoose-anslutning mongodb i node.js