Итак, мы с другом пытаемся уменьшить карту для коллекции, в которую последовательно добавляются элементы.
В основном мы вычисляем среднее значение некоторых полей и помещаем их в коллекцию (с помощью уменьшения карты).
В этом и заключается проблема: каждый раз, когда выполняется уменьшение карты, оно проходит через ВСЕ документы. Я новичок в уменьшении карты, но, исходя из того, что я знаю, кажется, что было бы суперэффективно, если бы он только запускал преобразование карты в новых и / или измененных документах и обновлял их существующей коллекцией.
Так что я был в порядке, я просто сделаю это сам. В коллекцию добавлено «обработано: ложь», и когда прогоны сокращения карты, я передаю фильтр запросов «{обработанный: ложь}», затем после прогонов сокращения карты я затем устанавливаю «{обработанный: истина}» для всех элементов. где обработано = ложь.
Вот проблема. Я беспокоюсь о крайнем случае. Что произойдет, если при уменьшении карты некоторые элементы будут добавлены в коллекцию? Они никогда не передавались в карту Reduce, и теперь после прогонов карты уменьшения их обработанный флаг устанавливается в значение true.
Что было бы замечательно, если бы вместо передачи «фильтра запросов» в mongo я мог бы передать объекту запроса «set». Тогда я могу установить для обработанного флага значение true и затем передать эти объекты.