使用Mongoose将大量文档导出到文本文件中



我使用来自不同源文件的Mongoose模式导入到MongoDB中的60,000个记录。现在,我想将导出进行到选定记录的文本文件中(还要在字段上应用验证 - 每个记录的文件)。我推荐了插件猫谷到CSV。此导出到TXT文件还有其他插件或方法吗?

是的,我尝试使用FS模块。

我希望结果在TXT文档中。

"ID","First_Name","Last_Name","Email"
123,ABC, DEF, emailABC@example.com
456,GHI, JKL, emailGDI@exaple.com
.....

我的代码是

Model.find({"ID":{$exist:true}},function(error,result)
{       
var csv = json2csv({data:results, fields:fields, hasCSVColumnTitle:true});  
fs.writeFile('TestFile.csv',csv,function(err)
{   
});  
});

我们可以将这些逗号分开的值写入文本文件吗?

我实际上没有测试过代码,但是它应该可以正常工作(也许有很小的更改),并且应该帮助您获得这个想法。此实现是使用将自动处理和写入数据的流。比将所有内容都放在内存中更可扩展。从2.4.0起。版本,Mongoose支持流。事件流是操纵流数据的绝佳库。

var es = require('event-stream');
var fs = require('fs');
var wstream = fs.createWriteStream('TestFile.csv');
Model.find({"ID":{$exist:true}).stream()
.pipe(es.map(function (data, cb) {
      var formated = data;
      formated.email = data.email1 || data.email2;
      var csv = json2csv({data:formated, fields:fields, hasCSVColumnTitle:true});
      cb(null, csv)
    }))
.pipe(wstream);

最新更新