使用混合对象从Mongoose导出为CSV

时间:2017-09-14 09:59:59

标签: json node.js csv object mongoose

我浏览了数十个库和函数。我可能缺乏该领域的一些知识,因为我无法弄清楚需要做哪些调整才能修改现有的库,或者至少正确定义属性以使其工作。

我的数据库中有以下结构:

var keywordSchema = new mongoose.Schema({
   keyword: { type: String, lowercase: true },
   addedToDB: {type: Date, default: Date.now},
   updates: [{ 
      date: {type: Date, default: new Date},
      traffic: Number,
      difficulty: Number,
      competition: Number,
      updated: {type: Date, default: Date.now}
   }]
});

现在,我希望能够使用以下标题将所有单词导出到CSV文件:

Keyword, Traffic, Difficulty, Competition, Date

每行是不同的关键字,流量,难度,竞争和日期是数据库中此单词的最新数据(最新数据是"更新"数组,他的" date"值是最近的值。)

我可以处理最新的发现,我无法找到一个好的方法来导出它。

请帮忙吗?

如果不清楚,请告诉我

1 个答案:

答案 0 :(得分:0)

您是否尝试过json2csv模块?

例如:

var json2csv = require('json2csv');
var fields = ['keyword', 'traffic', 'difficulty','competition','date'];
var fieldNames = ['Keyword', 'Traffic', 'Difficulty', 'Competition', 'Date'];

var myData = // YOUR DATA
try {
  var result = json2csv({ data: myData, fields: fields,fieldNames:fieldNames });
  fs.writeFile('word-ranker.csv', result, function(err) {
    if (err) throw err;
        console.log('file saved');
    });
} catch (err) {
  console.error(err);
}

注意:确保 myData 应包含直接字段。

希望这有助于你。