Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

169
Vistas
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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda