nodejs+mongoDB服務器端導出csv數(shù)據(jù)下載

最要用于導出大量數(shù)據(jù)
利用mongo提供的命令跟nodejs的child_process模塊,百萬數(shù)據(jù)導出也挺快。

代碼實例是導出數(shù)據(jù)庫中的user表中某批次號的會員,并直接保存到靜態(tài)托管文件夾,并返回下載url給前端。
mongoexport 中-q參數(shù)可以用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("|");
//執(zhí)行命令生成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`
            }
        })
      
    })

}
最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容