解决bson.errors.InvalidDocument: Cannot encode object: Decimal(‘8500.00‘)数据插入MongoDB问题

在尝试将MySQL数据批量迁移到MongoDB时,遇到InvalidDocument错误,原因是MongoDB不支持Decimal类型。通过检查数据表结构,发现attorn_money和mouth_zujin字段为decimal类型,导致插入失败。解决方案是将decimal数据转换为MongoDB支持的float或int类型,从而成功进行数据迁移。
摘要由CSDN通过智能技术生成

背景:
最近公司在做一个公众号的地方展示项目,原来的数据都是直接从MySQL中直接获取的。随着数据量的增大,查询效率越来越拖拉。然后呢,就想着把MySQL中的数据迁移到MongoDB中去。
任务简洁明了,读取MySQL数据批量插入MongoDB中,任务完成,美滋滋。
具体的数据迁移方法可以看这篇文章: https://blog.csdn.net/mygodit/article/details/88887106

今天要迁移的数据表是一个storefront,存储的是店铺转让的详细信息,有店铺月租金,店铺面积,店铺位置,店铺分类等多个已知的字段。

本来想着就是跟前面的数据表迁移大同小异,修改修改表名,分类名,然后喝杯茶,聊聊天什么的,数据就能迁移好了。
万万没想到,在迁移第一条数据的时候就出了幺蛾子。

在这里插入图片描述
报了一个bug,字面意思呢,无法对插入的数据进行编码。

看起来是MongoDB 对于插入的数据类型有要求,不是什么歪瓜裂枣都能随便插入进去的。

度娘上搜了搜,发现MongoDB只能插入float,int整数类型,也就是说,我们预备迁移的某些整数类型的数据是不符合规则,
到底是哪些数据类型有问题呢?让我们继续往下看。

在这里插入图片描述
通过查看数据表

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值