Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用mongoose将大量文档导出到文本文件中_Node.js_Mongodb_Mongoose_Export To Text - Fatal编程技术网

Node.js 使用mongoose将大量文档导出到文本文件中

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

我有大约60000条记录使用Mongoose模式从不同的源文件导入MongoDb。现在,我想将所选记录导出到文本文件中(同时对字段应用验证-例如,mongoose模式中有两个字段email1和email2。我必须在email1和email2之间进行选择,作为每个记录导出文件中的字段(电子邮件))。我将插件mongoose引用到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);

您是否可以使用fs模块编写文件,并在代码中进行验证?