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

172
Visualizações
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 Respostas
Responde à pergunta

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 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