Mongodb Mongoose流数据并将数据导出到CSV文件

Mongodb Mongoose流数据并将数据导出到CSV文件,mongodb,csv,mongoose,Mongodb,Csv,Mongoose,我正在尝试导出一个带有以下代码的CSV文件,但它不起作用。我假设我的数据将是巨大的,因此Mongoose cursor将是一个选项。我还注意到,我提到的“batchSize”为500,但它一次只能吐1个 module.exports.export2CSV=(请求、回复)=>{ 风险价值限额=250000; var filename='export.csv'; var query=User.find(); if(limit){query.limit(limit);} 变量头={ “内容类型”:“

我正在尝试导出一个带有以下代码的CSV文件,但它不起作用。我假设我的数据将是巨大的,因此Mongoose cursor将是一个选项。我还注意到,我提到的“batchSize”为500,但它一次只能吐1个

module.exports.export2CSV=(请求、回复)=>{
风险价值限额=250000;
var filename='export.csv';
var query=User.find();
if(limit){query.limit(limit);}
变量头={
“内容类型”:“文本/csv”,
“内容处置”:“附件;文件名=”+文件名
}
//res.writeHead(200,标题)
res.setHeader('Content-disposition','attachment;filename='+filename);
res.set('Content-Type','text/csv');
var stream=User.aggregate().cursor({batchSize:500}).exec().stream();
stream.on('data',函数(doc){
//对数据做任何你想做的事
res.write(doc);
}).on('error',函数(err){
//处理错误
res.end();
}).on('end',函数(){
//关闭文件
res.end();
});

}
这里是解决我问题的代码

var User=mongoose.model('Users',UserSchema);
const cursor=User.find();
常量转换器=(文档)=>{
返回{
Id:doc.\u Id,
名称:doc.fullname,
电子邮件:doc.Email,
类型:单据登记类型,
注册号:doc.registered\u on
};
}
常量文件名='export.csv';
res.setHeader('Content-disposition','attachment;filename=${filename}`);
res.writeHead(200,{'Content-Type':'text/csv'});
res.flushHeaders();
var csvStream=fastcv.createWriteStream({headers:true}).transform(transformer)

cursor.stream().pipe(csvStream.pipe(res)什么是fastCsv?这是一个节点模块吗?这对我有用。。。但是在
fastcvs
当前版本(4.3.6)中,我需要使用
fastcvs.format({headers:true})
,因为createWriteStream不再是一个函数。