Есть увесистый (700+ мб, 1.7 миллиона записей) XML файл с данными, которые нужно добавить в MongoDB. Перепробовал множество npm пакетов, консольных утилит и десктопных программ. Ни одна толком не может обработать файл такого объема в нужном виде (не xml "дерево").
Пример объекта который записывается:
Остановил свой выбор на пакете xml-stream. Он считывает стрим и выдает js объекты на выходе и все хорошо пока я ограничиваюсь выводом в консоль. Но появляются проблемы при любом ассинхронном выводе этих данных, например, при записи этих данных в монгу.
При попытке сохранить несколько записей в массив и потом массово их записать в БД им присваиваются идентичные айди и выкидывается ошибка. В текущей версии же просто ничего не происходит после запуска и соединения с БД. Ни ошибок, ни логов, ничего.
При попытке записать в файл дальше его создания дело не идет.
При записи в БД по одному успешно добавляются первые 214065 записей, а дальше соединение с монгой "падает" (MongoError: Topology is closed, please connect). Предположительно ошибка в XML (хотя это официальные данные с data.gov.ua) или проблема в парсере.
Пример файла для записи с несколькими вариантами вывода -
https://pastebin.com/K3cLFsws
Последний вывод в консоль объекта для записи перед "падением" монги -
https://pastebin.com/fWa7c7mD
Помогите разобраться как добавить эти данные в БД. Целый день голову ломаю над этим.
update: Решил проблему застревания на 214065 записях. Оказывается архиватор криво извлекал файл и он резался. Полный же файл 5ГБ. xml-stream нормально справился и данные в базу я добавил. Но остается открытым вопрос записи в БД пачками чтобы повысить производительность.