В моем скрипте импорта NodeJS для MongoDB я привык полагаться на выполнение ряда асинхронных команд mongoimport (путем вызова оболочки). Это было очень эффективно, и я мог легко импортировать 100 коллекций CSV-файлов в Коллекции одновременно.
Теперь я пытаюсь повторить то же асинхронное поведение с collection.initializeOrderedBulkOp
:
//Create collection and then
var batch = col.initializeOrderedBulkOp()
documents.forEach(doc => batch.insert(doc) )
batch.execute()
Вопросы:
А) Предполагается, что это будет одинаково эффективно, как моноимпорт, или лучше придерживаться предыдущего метода?
B) Как мне изменить код, чтобы выполнить эту операцию как можно быстрее:
- Зацикливание на папке с тысячами CSV-файлов
- Для каждого CSV-файла:
создать коллекцию MongoDB с тем же именем, что и файл
- Разобрать каждый CSV в JSON и вставить документы в новую коллекцию