Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

375
Visualizações
La mejor manera de insertar 10 000 archivos JSON (30 GB en total) en MongoDB

No me parece que usar python para combinar todos los archivos json sea conveniente, y el archivo combinado sería 30G.

Estoy usando mongoDB y nodejs. La forma en que relleno un json de muestra es:

 var data = require('./data1.json') var populateDB = function() { db.collection('temp', function(err, collection) { collection.insert(data, {safe:true}, function(err, result) {}); }); };

Esto solo agrega un archivo json. ¿Cómo debo llenar la colección con los más de 10000 archivos json desde aquí? ¡Cualquier sugerencia es muy apreciada!

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

La forma más fácil sería escribir un programa Node que procese un archivo JSON y luego ejecutarlo varias veces desde el shell:

 for i in *.json; do node program.js $i; done

Su programa Node solo necesitaría acceder al nombre desde process.argv en lugar de tenerlo codificado, pero la lógica sería la misma.

Si desea hacer todo en el nodo, deberá leer el directorio, obtener todos los archivos .json , leer cada uno de ellos en secuencia y luego ejecutar un código similar al que publicó. Si se trata de una tarea única, incluso puede salirse con la suya usando las funciones "Sincronizar" para simplificar su código si se trata de una tarea secuencial para hacer una cosa a la vez y no le importa agregar los datos en paralelo.

over 4 years ago · Santiago Trujillo Relatório

0

Algo así funcionaría

npm i glob-fs mongodb async --save

 const async = require('async'); const fs = require('fs'); const glob = require('glob-fs')({ gitignore: true }); const MongoClient = require('mongodb').MongoClient; const files = './files/data*.json'; const collection = 'test'; const url = 'mongodb://localhost:27017/test'; // Connect to db MongoClient.connect(url, function (err, db) { if (err) { console.log(err); } // Get the collection const col = db.collection(collection); glob.readdirPromise(files) .then(function (f) { return async.eachSeries(f, (item, callback) => { fs.readFile(item, 'utf8', function (err, data) { if (err) { return console.log(err); } // Insert into mongo col.insertMany(JSON.parse(data)).then((r) => { console.log(r); return callback(r); }).catch(function (fail) { console.log(fail) }); }); }, err => { console.log(err); }); }) .then(err => { if (err) { db.close(); } }) .catch(err => { console.log(err); }); });
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda