Извиняюсь за длинное описание.
Я хочу запустить преобразование для каждого документа в большой коллекции Mongodb с 10 миллионами записей около 10G. В частности, я хочу применить преобразование geoip к полю ip в каждом документе и либо добавить запись результата к этому документу, либо просто создать целую другую запись, связанную с этим, например, с помощью id (связывание не является критичным, я могу просто создать целая отдельная запись). Затем я хочу посчитать и сгруппировать по городам - (я знаю, как сделать последнюю часть).
Основная причина, по которой я считаю, что я не могу использовать map-Reduce, заключается в том, что я не могу вызвать библиотеку geoip в своей функции карты (или, по крайней мере, это ограничение, которое, я считаю, существует).
Итак, главный вопрос в том, как мне выполнить каждую запись в коллекции, применить преобразование, используя наиболее эффективный способ сделать это.
Пакетная обработка через Limit / skip не подлежит сомнению, так как она выполняет «сканирование таблицы» и будет становиться все медленнее.
Есть предложения?
Python или Js предпочтительны только потому, что у меня есть эти библиотеки geoip, но примеры кода на других языках приветствуются.