mongodb PapaParse:为什么步骤中的[data]数组:函数只包含一个元素?

w1jd8yoj  于 2022-12-26  发布在  Go
关注(0)|答案(1)|浏览(117)

我正在尝试解析CSV,最好在解析过程中将其直接加载到mongo数据库中。Papaparse有一个step:函数,允许我以流的方式导入大型csv文件,并一次记录一行结果。(有8个,都是字符串),这样我就可以在我的DB模式中将它们作为特定的值进行赋值,然而,当我试图访问这些索引时,Typescript告诉我数据数组(row.data)只有一个元素!
这对我来说很奇怪,因为console.log(row.data)在解析期间将显示我想要访问的数组,每行包含8个元素。

parse(file, {
    download: false,
    step: function(row) {
        console.log("Row: at index 0", row.data); // successfully logs array with 8 elements for each row
    console.log(row.data[0]) // lint tells me that row.data only contains a single element
    },
    complete: function() {
        console.log("All done!");
    }
});

如果可以的话,我希望避免将结果传输到中间对象,而只是直接解析到我的数据库中。我希望得到任何指导,以使此过程与当前设置一起工作,或者可以获得类似结果的其他方法。
谢谢你!

qyswt5oh

qyswt5oh1#

如果你使用@types/papaparse,那么parse方法需要一个类型参数,在你的例子中,你似乎需要一个字符串数组,因为你没有配置PapaParse来查找头。
您应该能够通过指定string[]数据类型来解决错误:

parse<string[]>(file, {
    step: function(row) {
        console.log(row.data[0])
    }
}

但是,如果CSV具有标题行,则使用结构化数据类型可能会更轻松地处理数据:
x一个一个一个一个x一个一个二个x

相关问题