aggregate()

Octave.Event.aggregate(streamId, options)

Usage of aggregate is explained at length here. todo - links to analyzing events..

Parameters

ParameterTypeRequiredDescription
streamIdStringYesThe unique ID of the Stream.
optionsObjectYesAn optional object literal of query options.
options.filterStringNoA filter string.
options.groupByArray of stringsNo
options.outputArray of stringsNo
options.rulesArray of stringsNo
options.sortsArray of stringsNoString representation of the member key to sort the results over (default value is the creation date).

Returns

Todo - need to document what is returned.

//fixed value comparison example
var myAggregationResults = Octave.Event.aggregate(myStreamId, {
"filter": "EXISTS cpu_temp",
"rules": {"x":"cpu_temp > 50"},
"groupBy": ["$month"],
"output": [
"$avg:cpu_temp",
"$min:cpu_temp",
"$max:cpu_temp",
"$avg:x",
"$count"
],
"sorts":["$avg:x:desc", "$avg:cpu_temp:asc"]
});

//element values comparison example
var myAggregationResults = Octave.Event.aggregate(myStreamId, {
"filter": "elems.aNumber > elems.bNumber",
"rules": {"x":"elems.aNumber > 0.1"},
"groupBy": ["$month"],
"output": [
"$avg:elems.aNumber",
"$min:elems.aNumber",
"$max:elems.aNumber",
"$avg:x",
"$count"
],
"sorts":["$avg:x:desc", "$avg:elems.aNumber:asc"]
});