nodejs+mongoDB服务器端导出csv数据下载

最要用于导出大量数据
利用mongo提供的命令跟nodejs的child_process模块,百万数据导出也挺快。

代码实例是导出数据库中的user表中某批次号的会员,并直接保存到静态托管文件夹,并返回下载url给前端。
mongoexport 中-q参数可以用find的所有操作,详情可以参考child_process模块以及mongoexport

const cp = require('child_process');

exports.UserFile = async function(req,res) {

    let batch = req.query.batch;
//配置导出条件以及文件名和路径
    let cmd = "-h|127.0.0.1|--port|27017|-d|dataBase|-c|user|--type=csv|-f|name,phone|-q|"+`{'batch':'${batch}'}`+"|-o|"+`./uploads/exports/${batch}.csv`;

    cmd = cmd.split("|");
//执行命令生成csv文件
    let cat=cp.spawn('mongoexport',cmd);

    console.log('生成文件成功 : ' + code);

    cat.on('close', function(code) {
        res.send({
            Code:1,
            Msg:batch,
            Data:{
              url:`/uploads/exports/${batch}.csv`
            }
        })
      
    })

}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容