I am using Java API and call the following map command:
  MAP function () {emit ('nogroup', {endtime: this.endtime, _owner: this._owner}); } Reduce the Reduce function (key, value) {var res = 3426533531976; (Var i = 0; i & lt; values.length; i ++) {if (value [i] .endtime & lt; res and value [i] ._man == faucet) res = value [i ] .endtime; } Return Ridge; }   with this code
  string map = "function () {emit ('nogroup', {endtime: this.endtime, _owner: this ). _owner}); }"; Reduce string = "Reduce function (key, value) for {var res = 9426533531976; (var i = 0; i & lt; values.length; i ++) {if (value [i] .endtime & lt ; Res & amp; amp; and value [i] ._man == faucet) res = value [i] .endtime;} return ridge;} "; MapReduceCommand CMD = New MapReduceCommand (userdataCollection, map, less, blank, MapReduceCommand.OutputType.INLINE, blank); MapReduceOutput Out = userdataCollection.mapReduce (cmd);   Sometimes results appear
  {"_id": "nogroup", "value": {"floatApprox": 1.426628475177E12}} < / Code>  and sometimes like it
  {"_id": "nogroup", "value": 9.426533531976E12}   How can I always remove my long results with the same code?
I currently have
 for  (DBObject a: out.results ()) {return ((BasicBobject) a.get ("value")). Mill Long ("FloatProoprox"); }   but it only works for the floatApprox version
Just add a check after:
  res = value [i] .endtime;   For example.
  res = value [i] .endtime; If (type res == "object") {res = res.floatApprox; }   
No comments:
Post a Comment