2021-02-18 mongodb数据导入mysql后导入es遇到的坑

记一下今天踩得坑

今天项目经理给了我一份js文件,让我导入到mongodb里,然后转成mysql,最后放到es里
我直接用navicat for mongodb 运行脚本文件,直接导入了
然后用 mongodb 自带的 mongodbExport 工具导出为了csv文件
先去自己mongodb 安装目录下找到bin,点进去以后有一个mongoexport
然后执行这条命令即可导出

mongoexport -d food_nutrient -c food_nutrient --csv -f food_id,name,heart,unit,type,picture,nutr -o food_nutrient.csv

-d:指明使用的库,本例中为food_nutrient

-c:指明要导出的集合,本例中为food_nutrient

-o:指明要导出的文件名,本例中为food_nutrient.csv

-csv:指明要导出为csv格式

-f:指明需要导出 food_id,name,heart,unit,type,picture,nutr 这几列的数据

我这里导出时多加了一个 _id 字段,这个字段我记得是mongodb自己带的,我这里多导出了这个字段,导致我后面导入到es时报错

导出 csv 文件后,要将文件导入到mysql中,这里我也是直接用navicat了,先建好表,然后右键表导入向导,里面有个csv文件类型,直接下一步就可以了

导入到mysql后,要往es里导入数据,这里我直接用之前用过的一个导数据的项目导的
这里有个坑,数据一直导不进去,后来我仔细看了日志发现请求报错了
报了这个错
Field [_id] is a metadata field and cannot be added inside a document. Use the index API request parameters

说 _id 这个字段有问题,其实就是我表里有 _id 这个字段和es的冲突了,然后我只好改了查询的sql,这里其实在导出的时候就不该导出 _id 这个字段了

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值