gmongo 使用時の Finalizer の設定方法がわかりません。私の「削減」には、「ファイナライズ」で使用したい配列が含まれています
MapとReduceは以下の通り
String map="""
function map(){
key = this.vendor
var inSec=Math.round(this.timeTook/1000*100)/100
value= {response_time:[inSec]}
emit(key, value)
}
"""
String reduce = """
function reduce(key,values){
var call_list={response_time:[]}
var count = 0
var total=0
for (var i in values){
call_list.response_time=values[i].response_time.concat(call_list.response_time)
}
call_list.response_time= call_list.response_time.sort(function(a,b){return a-b})
return call_list
}
"""
String collection="mapreduceresult"
以下のように mapreduce を呼び出すと、エラーが発生します - クエリが大きすぎます
MapReduceCommand cmd = new MapReduceCommand(logCollection, map,reduce,null,MapReduceCommand.OutputType.MERGE,null)
cmd.setOutputDB(collection)
cmd.setFinalize(finalizer) //- wanted to use Finalize as the reducer returns an Array
logCollection.mapReduce(cmd) //This is giving an error - Query is too large..
これだけが私のために働いていますが、ファイナライズを設定する方法がわかりません
logCollection.mapReduce(map,reduce,collection,[:])