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

177
Views
Actualización masiva de MongoDB Collection desde un archivo CSV

Tengo un esquema de mangosta definido como

 const masterSchema = new mongoose.Schema({ chapter: { type: Number, required: true }, line: { type: Number, required: true }, translations: [ { translation: { type: String, required: true }, }, ], });

Estoy tratando de actualizar la colección desde un archivo CSV. La Colección tiene más de 5K documentos.

Data de muestra

 [ { chapter: 1, line: 1, translations: [ { translation: "xyz", }, ], }, { chapter: 1, line: 2, translations: [ { translation: "abc", }, ], }, ];

El archivo CSV tiene un formato de

 chapter,line,translation 1,1,example1 1,2,example2 ....

La salida debe ser

 [ { chapter: 1, line: 1, translations: [ { translation: "xyz", }, { translation : "example1" } ], }, { chapter: 1, line: 2, translations: [ { translation: "abc", }, { translation : "example2" } ], }, ]

Estoy confundido acerca de cómo se usará updateMany() para insertar los datos en el documento correcto. ( si es la forma correcta de resolver el problema )

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Asumiendo que el chapter + line no es único, entonces realmente la parte más difícil de este ejercicio es analizar el CSV en primer lugar. CSV tiende a lanzarle sorpresas como material citado, espacios en blanco iniciales y finales no deseados en columnas analizadas, etc., por lo que es bueno usar algo de programación para controlarlo, por ejemplo.

 import csv from pymongo import MongoClient client = MongoClient('mongodb://localhost:27017') db = client['testX'] coll = db['foo'] with open('myFile', 'r') as csvfile: reader = csv.reader(csvfile) header = next(reader, None) # capture and skip header line for row in reader: print(row) # for fun # Careful: must turn parsed strings into int to match database type. # Also, strip whitespace from col 2 for safety: coll.update_many({'chapter':int(row[0]),'line':int(row[1])}, {'$push': {'translations':{'translation':row[2].strip()}}})
about 4 years ago · Juan Pablo Isaza 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!