2017-02-15 7 views
0

У меня есть около 60 000 записей, импортированных в MongoDb с использованием схемы Mongoose из разных исходных файлов. Теперь я хотел выполнить экспорт в текстовый файл выбранных записей (также применяя проверки по полям, например, есть два поля в схеме mongoose email1 и электронной почты 2. Мне нужно выбрать между email1 и email2 как поле (электронная почта) в экспорте файл для каждой записи). Я назвал плагин mongoose-to-csv. Есть ли другие плагины или методы, доступные для этого экспорта в txt-файлы?Экспорт большого количества документов в текстовый файл с использованием mongoose

И да, я пробовал использовать модуль fs.

Я хочу получить что-то подобное в документе txt.

"ID","First_Name","Last_Name","Email" 
123,ABC, DEF, [email protected] 
456,GHI, JKL, [email protected] 
..... 

мой код был

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

Можем ли мы записать эти значения, разделенные запятыми в текстовый файл?

+0

Можете ли вы использовать модуль fs для записи файла и проверки подлинности в коде? –

ответ

0

Я действительно не протестировал код, но он должен работать нормально (возможно, с небольшими изменениями) и должен помочь вам получить эту идею. Эта реализация использует потоки, которые будут автоматически обрабатывать и записывать данные. Гораздо более масштабируемо, чем помещение всего в память. Из 2.4.0. версия, поддерживающая потоки mongoose. event-stream - отличная библиотека для управления данными потока.

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); 
+0

Он работает. Спасибо. – Suji

 Смежные вопросы

  • Нет связанных вопросов^_^