mongodb导入相关

用mongodb存的我们的数据,现在要往里面倒入一些数据,主要是人家给的一个excel文件,大体内容是这样的

本来上边的表头都是中文的,为了使用mongodb的导入功能,我把他们都改成对应的代码里model的字段了

我这里不说详细步骤只说大概思路以及遇到的问题

1.首先mongodb是不支持excel导入的,但他支持csv,tsv等导入,所以你只要把这个excel另存为csv格式的就行,注意,这里要看你留不留表头,后面会说为什么。

2.之后就是输入命令了,如果实在windows下,注意,不要用mongo的命令连接,在他的命令行里输入导入命令,要window键+r打开cmd在这里名输入命令,你要是没配环境变量,那就到对应的mongodb文件夹有mongoimport那个玩意的文件夹,然后在此处打开命令行什么的

3,cmd输入命令

mongoimport -v --host ip:27017 --username mongo用户名 --password 密码--authenticationDatabase 数据库名 -d 数据库名 -c 你要存的collection名 --file 文件全路径 --type csv --drop --headerline

由于我们之前的excel里表头没删除,所以csv文件里

有这样一行,--headerline就是干这个用的,他会把csv第一行当成键(列名),如果你的excel里没这行,那就不能用--headerline,而要用field那个,不详细写了,这个写的人很多

要注意,3.4版本里才开始支持--columnsHaveTypes这个参数,我用的3.0,老报错 error parsing command line options: unknown option  "columnsHaveTypes"

我为什么要提这个呢,因为我们数据库被要求所有字段全都存String类型的,像表中数据0,1这种数字的01这种的全都被mongodb默认转成了int32,然后,3.0就是不支持这个指定类型,试了很多方法,用field指定什么的都不行,最后没辙了

采取以下手段

填进去的全查出来,这样model默认把0,1全都变成String了,像原来是01的,现在只剩下1了,就特殊处理下,加个0,然后save,这里由于我们是以其中一个字段作为id主键的,所以save只是更新了数据库的每一个文档记录,把对应的字段都改成了String了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值