Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

376
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!