Node.js 使用mongoose将大量文档导出到文本文件中
我有大约60000条记录使用Mongoose模式从不同的源文件导入MongoDb。现在,我想将所选记录导出到文本文件中(同时对字段应用验证-例如,mongoose模式中有两个字段email1和email2。我必须在email1和email2之间进行选择,作为每个记录导出文件中的字段(电子邮件))。我将插件mongoose引用到csv。是否有其他插件或方法可用于此导出到txt文件 是的,我试过使用fs模块 我希望在txt文档中得到类似这样的结果Node.js 使用mongoose将大量文档导出到文本文件中,node.js,mongodb,mongoose,export-to-text,Node.js,Mongodb,Mongoose,Export To Text,我有大约60000条记录使用Mongoose模式从不同的源文件导入MongoDb。现在,我想将所选记录导出到文本文件中(同时对字段应用验证-例如,mongoose模式中有两个字段email1和email2。我必须在email1和email2之间进行选择,作为每个记录导出文件中的字段(电子邮件))。我将插件mongoose引用到csv。是否有其他插件或方法可用于此导出到txt文件 是的,我试过使用fs模块 我希望在txt文档中得到类似这样的结果 "ID","First_Name","Last_Na
"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);
您是否可以使用fs模块编写文件,并在代码中进行验证?