sql >> Databáze >  >> NoSQL >> MongoDB

Mapreduce v nativním ovladači mongodb ruby

Přišel jsem na důvod a můj nový kód je

# 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

V opts musím dát ven a raw. Dostal jsem se z odkazuzde

Tento kód funguje dobře. Díky.




  1. Docker-compose a mongoDB:Nepodařilo se spustit WiredTiger v jakékoli verzi kompatibility?

  2. Jak mohu importovat data do Mongodb ze souboru Json pomocí javy

  3. Uživatelské role a oprávnění Express.js/Mongoose

  4. Chyba [ERR_HTTP_HEADERS_SENT] Nelze nastavit záhlaví po jejich odeslání klientovi