首页 > 解决方案 > 指定columnsHaveTypes将数据从csv文件导入Mongodb并指定一个字段为字符串

问题描述

我有一个 csv,其中包含以下格式的数据

Mobile,Address
1234567890,My address
1234567891,My address
1234567892,My address
+911234567893,My address
+911234567894,My address

当我使用以下命令将数据导入 mongodb 时,+ 将从移动列中删除,因为 mongoimport 将移动作为 NumberLong 插入。

mongoimport --db test -c testcoll  --type csv --file test.csv --headerline

但我想按原样插入数据。所以我尝试使用以下命令将其存储为字符串

mongoimport --db test -c testcoll  --type csv --columnsHaveTypes --fields \"Mobile.string()"\ --file test.csv --headerline

但是上面的命令不起作用。

注意:我只想更改移动列的数据类型。其他列将根据 mongoimport 默认行为插入

标签: mongodbmongoosemongodb-querymongoimport

解决方案


我认为您应该在使用--fields--headerline参数之间做出决定

您可以通过csv 文件中的--headerline使用以下命令获得类型规范:

mongoimport --db test -c testcoll  --type csv --columnsHaveTypes --headerline --file test.csv
Mobile.string(),Address.auto()
1234567890,My address
1234567891,My address
1234567892,My address
+911234567893,My address
+911234567894,My address

或者您可以在命令中指定--fields

mongoimport --db test -c testcoll  --type csv --columnsHaveTypes --fields 'Mobile.string(),Address.auto()' --file test.csv

并从 csv 中删除标题:

1234567890,My address
1234567891,My address
1234567892,My address
+911234567893,My address
+911234567894,My address

推荐阅读