我正在服务器上运行 papa parse 来读取和解析一个 csv 文件,使用以下代码:
function getData() {
console.log("Started getData...");
const file = fs.createReadStream(filePath);
papa.parse(file, {
header: true,
complete: createRecord
});
}
我的完整回调函数如下所示:
function createRecord(row, file) {
records = row.data;
console.log("Started createRecord...");
records.forEach((record) => {
console.log(record)
Activity.create(record);
});
}
然后我将其写入 MondoDB 数据库。除了 papa 解析的第一个字段名称外,一切都运行良好。上面的 console.log(record)
调用的记录输出如下所示:
{
'Activity_Date': '2018-08-28',
Time_Start: '2018-08-28 20:20',
Time_End: '2018-08-28 21:01',
Duration: 0.027962963,
Subject: 'CS410',
Semester: 'Fall 2018',
Week: 1,
Task: 'Lectures',
Day: 2
}
请注意 Activity_Date
周围的引号。这会导致 Mongo 忽略第一个字段,只将其余字段提交给数据库。
尝试以不同方式编辑 csv 文件并没有产生任何有用的结果。奇怪的是,如果我查看来自 papa parse 的元数据,它会给我没有引号的字段名称。
Activity 的 Mongo Schema 如下所示:
const mongoose = require("mongoose");
const activitySchema = new mongoose.Schema({
Activity_Date: String,
Time_Start: String,
Time_End: String,
Duration: Number,
Subject: String,
Semester: String,
Week: Number,
Task: String,
Day: Number
});
module.exports = mongoose.model("Activity", activitySchema)
我们非常欢迎任何有关删除引号的帮助!
谢谢
最佳答案
自问起已经有一段时间了,但我会留下对我有用的东西。尝试在配置对象中使用它:
transformHeader: h => h.trim()
关于mongodb - Papa Parse 用引号呈现的第一个标题字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56316098/