Итак, я новичок в mongodb и mapreduce вообще и наткнулся на эту "причуду" (или, по крайней мере, на мой взгляд, причуду)
Скажем, что у меня есть объекты в моей коллекции:
{'key': 5, 'value': 5}
{'key': 5, 'value': 4}
{'key': 5, 'value': 1}
{'key': 4, 'value': 6}
{'key': 4, 'value': 4}
{'key': 3, 'value': 0}
Моя функция map просто испускает ключ и значение
Функция уменьшает, просто добавляет значения И, прежде чем возвращать их добавляет 1 (я сделал это, чтобы проверить, не вызвана ли функция сокращения)
Мои результаты:
{'_ id': 3, 'значение': 0}
{'_ id': 4, 'value': 11.0}
{'_ id': 5, 'value': 11.0}
Как вы можете видеть, для клавиш 4 и 5 я получаю ожидаемый ответ 11 НО для ключа 3 (только с одной записью в коллекции с этим ключом), я получаю неожиданный 0!
Является ли это естественным поведением mapreduce вообще? Для MongoDB? Для пимонго (который я использую)?