Я делаю некоторую сложную обработку данных для нескольких записей в MongoDB, сначала я делаю карту / уменьшить / завершить, а затем мне нужно выполнить некоторую другую логику для вычисления и записи итогов и других цифр, которые невозможно вычислить в пределах карты / сокращения сам.
Я создал отдельную функцию JS для запуска db.eval()
это делает то, что мне нужно сделать, но я только что обнаружил, что db.eval()
не рекомендуется в MongoDB 3.0, и это для меня обидно, потому что у меня есть план по обновлению до 3.0, нам действительно нужен его новый движок WiredTiger.
Я посмотрел на db.cursor.forEach()
функционирует как еще один способ реализации подобной логики, но кажется, что она не поддерживается в текущем PHP-драйвере MongoDB.
Поэтому возникает вопрос — есть ли обходные пути для выполнения сложных функций для каждого документа в стеке Mongo-PHP?
MapReduce Монго реализован с использованием JavaScript, Структура агрегации основан на C ++ и гораздо быстрее для меня. Рассматривали ли вы использование Aggregation Framework?
Других решений пока нет …