用户
 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,登录网站

小程序社区 首页 教程 实战教程 查看内容

小程序云开发:data exceed max size 解决方案

Rolan 2021-1-14 10:12

并且这个错误还开发工具上不出现,只有在手机上才出现。原因是 update 的字段内容太大了导致无法正常修改,那么我们要做的就是让参数变小。

说现象

前两天有客服消息说我的小程序无法进行正常功能的使用了,后来定位到问题了,在 update 的时候出现错误信息:data exceed max size。


并且这个错误还开发工具上不出现,只有在手机上才出现。原因是 update 的字段内容太大了导致无法正常修改,那么我们要做的就是让参数变小。

分析问题


这个小程序是实现的是投票功能,有多层嵌套,之前的更新方案是直接修改 optionData 里面的所有内容。

数据结构解释:
optionData 是一个数组里面存储选项数据
optionData 下面还有一个joiner数据组,这个是存放用户投票信息的。

optionData内容过大导致报错,解决方案是通过只更新局部来解决。

上代码

没改之前的代码


let vote = await db.collection('activity').doc(event.id).update({
      data:{
        optionData:event.optionData
      }
    })

优化后的代码


  let vote = await db.collection('activity').doc(event.id).update({
      data:{
        ['optionData.'+ joiner.index +'.joiner']:_.push(event.userInfo)
      }
    })

总结

很多bug当数据量小的时候问题并不会暴露出来,数据一旦大起来问题就来了。本质上反应出一个问题就是从数据结构的设计上这个就是不合理的,不应该所有数据都存放在一个大字段里面,应该做数据拆分,然后通过联查来展示,这样更加便于后续的数据分析与统计。

文章作者:陈宇明  极乐技术社区经过作者授权转载

鲜花
鲜花
鸡蛋
鸡蛋
分享至 : QQ空间
收藏