【问题标题】:mongoimport csv and split the data string into two columnsmongoimport csv 并将数据字符串拆分为两列
【发布时间】:2021-04-07 21:00:26
【问题描述】:

我对 MongoDB 很陌生,我正在使用 mongoimport 将 CSV 数据导入数据库。我的 CSV 数据如下所示:

我希望 MongoDB 集合中的数据为,

{ "_id" : BinData(0,"5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8"), "c" : 3303003 }
{ "_id" : BinData(0,"3D4F2BF07DC1BE38B20CD6E46949A1071F9D0E3D"), "c" : 2900049 }
{ "_id" : BinData(0,"7C222FB2927D828AF22F592134E8932480637C0D"), "c" : 2680521 }
{ "_id" : BinData(0,"6367C48DD193D56EA7B0BAAD25B19455E529F5EE"), "c" : 2670319 }
{ "_id" : BinData(0,"E38AD214943DAAD1D64C102FAEC29DE4AFE9DA3D"), "c" : 2310111 }

我已经尝试了以下命令,但它导入不正确,并且只将数据保留在一列中。

mongoimport --fields "_id.binary(base64),c.int32()" --db mgdb --collection sample --type csv --file C:\\Users\\Admin\\Downloads\\pwned-passwords-sha1-ordered-by-count-v7\\pwned-passwords-sha1-ordered-by-count-v7.csv

如果有人能引导我走向正确的方向,那将是一个很大的帮助。提前致谢。

【问题讨论】:

  • 你能告诉我与 C# 的关系吗?
  • 在指定字段和列类型时,您是否尝试过选项columnsHaveTypes
  • @prasad_ 我尝试了 columnHaveTypes,但它插入记录为 {"_id": "5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8: 3303003"}。这是我尝试过的命令 mongoimport --fields "_id.string(),c.string()" --columnsHaveTypes --db local_pwned --collection new_test --type csv --file C:\\Users\\Admin\ \Downloads\\pwned-passwords-sha1-ordered-by-count-v7\\pwned-passwords-sha1-ordered-by-count-v7.csv
  • @Llama 与 C# 的关系是我正在将我的 C# 应用程序与 MongoDB 连接:)
  • 不,不是“与您的应用程序有什么关系?”和你的问题有什么关系?这里没有任何 C# 代码。

标签: mongodb sha mongoimport


【解决方案1】:

在将 CSV 文件传递​​给 mongoimport 之前,您需要正确格式化它。 mongoimport 只是尝试导入您提供的内容,因此您需要确保提供的内容格式正确。

看起来你目前拥有的是这种格式:

_id
5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8:3303003
3D4F2BF07DC1BE38B20CD6E46949A1071F9D0E3D:2900049

但你需要这种格式:

_id,c
5BAA61E4C9B93F3F0682250B6CF8331B7EE68FD8,3303003
3D4F2BF07DC1BE38B20CD6E46949A1071F9D0E3D,2900049

要在 CSV 上进行这样的转换,使用像 VSCode 这样的文本编辑器并进行搜索和替换会更容易。毕竟,CSV 只是一个文本文件。请注意,在 Excel 中进行搜索和替换可能不起作用,因为它将替换字段内的 :,而不是将其分离到想要的新字段中。 Excel 有时会过于聪明。

你也可以通过下载Cygwin来使用像sed这样的命令行工具:

sed "s/:/,/g" file.csv > new_file.csv

但除非您已经熟悉 sed,否则文本编辑器可能是最简单的。

【讨论】:

    猜你喜欢
    • 2020-01-19
    • 2013-01-22
    相关资源
    最近更新 更多