У меня есть zip-архив с большим количеством JSON-файлов. Каждый из этих файлов JSON представляет собой массив объектов JSON, которые я хотел бы импортировать в коллекцию MongoDB. Моя идея состояла в том, чтобы использовать опцию конвейера unzip и отправить содержимое этих файлов непосредственно в mongoimport:
unzip -p archive.zip *.json | mongoimport -d db_name -c collection_name --jsonArray
Я ожидал, что поведение, похожее на то, что делает результат поиска: каждый файл обрабатывается правильно, как с помощью этой команды:
find . -type f -name "*.json" | zip archive.zip -@
Но это не так. Поскольку содержимое файлов выводится в std, у mongoimport есть проблема, потому что он получает начало массива из другого файла сразу после конца массива из предыдущего файла. Ничего промежуточного (кроме новой строки, я думаю), поэтому он останавливается.
Есть ли другой способ достичь моей цели?