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

169
Visualizações
¿Cómo transmitir la respuesta de consulta de mongo como csv?

Tengo una colección que contiene más de 5 millones de registros. Necesito consultar y pasar los datos al cliente como un archivo csv. Inicialmente, cuando los registros solían ser bajos, simplemente lo hicimos en bucle y lo escribimos en un archivo y lo enviamos al cliente. Pero ahora que el registro sigue creciendo, consume memoria y nos enfrentamos a un problema. Entonces, para usar la transmisión, probé a continuación,

 const cursor = Model.find(query) const transformer = (doc) => { return { "Creator": doc.Entity_Creator, "Action Date" : doc.E_Approve_Time, "Remarks": doc.Entity_Comment } } let pat = path.join(__dirname, '../') var csvFilePath = '././downloads/' + ' Approved.csv' const filename = pat + csvFilePath res.setHeader('Content-disposition',`attachment;filename=${filename}`); res.writeHead(200,{ 'Content-Type': 'text/csv'}) res.flushHeaders(); var csvStream = fastCsv.format({headers: true}).transform(transformer) cursor.stream().pipe(csvStream).pipe(res)

Pero después de la descarga, obtengo archivos con Object Object en una sola columna. Cómo resolver este problema?

ingrese la descripción de la imagen aquí

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

0

utilizar este

 const transformer = (doc) => { return { Creator: doc.Entity_Creator, "Action Date": doc.E_Approve_Time, Remarks: doc.Entity_Comment, }; }; let pat = path.join(__dirname, "../"); var csvFilePath = "././downloads/" + " Approved.csv"; const filename = pat + csvFilePath; res.setHeader("Content-disposition", `attachment;filename=${filename}`); res.writeHead(200, { "Content-Type": "text/csv" }); res.flushHeaders(); var csvStream = fastCsv.format({ headers: true }).transform(transformer); csvStream.pipe(process.stdout).on("end", () => process.exit()); Model.find(query).exec(function (err, cursor) { if (err) { console.log(err); console.log('error returned'); return false; } if (!data) { console.log('Authentication Failed'); return false; } cursor.forEach((e) => { csvStream.write({ Creator: e.Entity_Creator, "Action Date": e.E_Approve_Time, Remarks: e.Entity_Comment, }); }); }) csvStream.end();
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