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)}]
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']