mongodb - Papa Parse 用引号呈现的第一个标题字段

标签 mongodb mongoose papaparse

我正在服务器上运行 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/

相关文章:

javascript - MongoDB:单次更新中的$push 多个对象和$pop 多个对象

node.js - Mongoose 从不同的数据库填充模式

mongodb - Mongo聚合查询-字符串包含值的过滤条件

node.js - Mongoose 查找具有给定 ObjectId 的所有文档

node.js - Mongoose 可以需要子文档吗?

javascript - 在 Cordova iOS 中使用 Papaparse 解析本地 CSV 文件

javascript - 使用 JavaScript Papa Parse 将 CSV 文件加载到静态 Python Bokeh Web 应用程序中

java - MongoDB 与 Java 中的条件不同

javascript - XMLHttpRequest 未定义 - Papa 解析

javascript - Mongoose 模型 : calculate and automatically update average rating