def run(self): with self.input()[0] as i: coll = i.collection map = Code(""" function(){ emit(this.node, 1); } """) reduce = Code(""" function(key, values){ var total = 0; for(var i = 0; i < values.length; i++){ total += values[i]; } return total; } """) reduce = coll.map_reduce(map, reduce, self.collection.value) all = len(self.graphs) reduce.update({}, {'$mul': {'value': 1 / all}})