MongoDB MapReduce — выделение одного ключа/одного значения не вызывает редукции

Итак, я новичок в mongodb и mapreduce в целом и наткнулся на эту "причуду" (или, по крайней мере, на мой взгляд, причуда)

Скажем, у меня есть объекты в моей коллекции, например:

{'key':5, 'value':5}

{'key':5, 'value ':4}

{'ключ':5, 'значение':1}

{'ключ':4, 'значение':6}

{'ключ':4, 'значение': 4}

{'key':3, 'value':0}

Моя функция mapпросто выдает ключ и значение

Моя функция reduceпросто добавляет значения ANDперед их возвратом добавляет 1 (я сделал это, чтобы проверить, вызывается ли вообще функция сокращения)

Мои результаты следующие:

{'_id': 3, 'значение': 0}

{'_id':4, 'значение': 11.0}

{'_id':5, 'значение': 11.0}

Как видите, для ключи 4 и 5 я получаю ожидаемый ответ 11, НО для ключа 3 (только с одной записью в коллекции с этим ключом) я получаю неожиданный 0!

Является ли это естественным поведением mapreduce в целом? Для МонгоДБ? Для pymongo (который я использую)?

19
задан IamAlexAlright 13 June 2012 в 19:11
поделиться