示例#1
0
    def compute(self):
        generator = PipelineGenerator()

        results = []

        generator = PipelineGenerator()
        for sub_range in self.missing:
            pipeline = generator.dispatch_function(sub_range.start, sub_range.stop,
                function=self.aggregation_function, tags=self.tags)
            results.append(self.collection.aggregate(pipeline)['result'][0]['value'])

        function = self.functions[self.aggregation_function]

        results.extend([x.value for x in self.partial])

        id_doc = {'date': self.start}

        if self.tags:
            id_doc['tags'] = self.tags

        return [{'_id': id_doc, 'value': function(results)}]
示例#2
0
 def compute(self):
     generator = PipelineGenerator()
     pipeline = generator.dispatch_function(self.start, self.stop, self.step,
         self.aggregation_function, self.tags)
     return self.collection.aggregate(pipeline)['result']