收藏
回答

通过云函数更新数据中的数据,如果数组长度变短,会用null填充,请问是代码问题还是数据库的问题?

本地代码:

    let where={_id:projectlist[id]._id}
    let data={ 
      moban:projectlist[id].moban, //数组长度为1
    } 
    wx.cloud.callFunction({
      name: 'db', //云函数名称 
      data:{
        dbname:"taizhang",
        where:where,
        data:data,
        id:"update_where"
      }
    })
    .then(res => {  
    }) 

-------------------------------------------------------------

云函数代码

const cloud = require('wx-server-sdk')
const db = cloud.database()
const _ = db.command
// 云函数入口函数
exports.main = async (event, context) => {
  const dbname=event.dbname
  const id=event.id
  const doc=event.doc
  const data=event.data
  if(id=="update_where"){
    try{
      return new Promise((resolve, reject) => {
        db.collection(dbname).where(event.where).update({data:data})
        .then(res=>{
          res.event=event
          resolve(res)
        }) 
        .catch(err=>{
          err.event=event
          reject(err)
        })
      })
    }
    catch (error) {
      return error
    } 
  }
  
}

数据库的异常情况:

当本地moban这个数据长度为1,数据库原来的长度为2,更新后,会出现null

请帮忙解答一下,这个是因为数据库的原因还是代码的问题。以前更新时都是正常的,现在更新出现这样的异常。

回答关注问题邀请回答
收藏

6 个回答

  • 疯狂的小辣椒
    疯狂的小辣椒
    置顶回答2022-03-01

    你好,问题已定位到原因,近期会修复。

    2022-03-01
    有用
    回复 1
    • Ss1ee
      Ss1ee
      2023-10-26
      你好,为何最近在使用过程中还是会有这样的问题 要怎么解决呢
      2023-10-26
      回复
  • 是李啊
    是李啊
    2023-10-25

    现在还会有这个问题吗,我最近发现我的数据中会莫名其妙多出一个null数据

    2023-10-25
    有用
    回复
  • jewn
    jewn
    2022-02-27

    同样问题!!@官方。日常常用api都有问题,还怎么让人入坑啊。

    2022-02-27
    有用
    回复 4
    • jewn
      jewn
      2022-02-27
      用一个短数组,set一个长数组,原数组长度不变,会用null填充。
      2022-02-27
      回复
    • jewn
      jewn
      2022-03-01
      基础库的原因,不要用最新的,有bug,我ri,搞得我用了很冗余的写法,现在又要改回来。什么玩意
      2022-03-01
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2022-03-07
      你好,问题已解决,可以再观察下。
      2022-03-07
      回复
    • 郑旭东
      郑旭东
      2022-03-07
      给力给力
      2022-03-07
      回复
  • 郑旭东
    郑旭东
    2022-02-26

    我也遇到类似问题,也是最近一段时间才出现的。我排查到可能是云函数的问题,或者是wx.cloud.callFunction的问题。你也可以尝试下,在云函数中打印出event.data看看,数组里已经存在null了。

    2022-02-26
    有用
    回复 1
    • 疯狂的小辣椒
      疯狂的小辣椒
      2022-03-07
      你好,问题已解决,可以再观察下。
      2022-03-07
      回复
  • 多粑
    多粑
    2022-02-23

    我也发现了这样的问题,今天郁闷了一天,我认为是云环境的bug

    手机上会出现,但是同样的代码用模拟器却不出现

    2022-02-23
    有用
    回复 4
    • 躺在海上看书
      躺在海上看书
      发表于移动端
      2022-02-23
      跟你说的情况一致,只有手机端测试发现这个问题
      2022-02-23
      回复
    • 多粑
      多粑
      2022-02-23回复躺在海上看书
      这种情况,微信开放社区的管理员应该及时反馈给开发团队,我的小程序部分功能已经不能用了
      2022-02-23
      1
      回复
    • 躺在海上看书
      躺在海上看书
      发表于移动端
      2022-02-23回复多粑
      同感,我的程序部分功能发生错误,执行不下去。用户反馈才发现。
      2022-02-23
      回复
    • 疯狂的小辣椒
      疯狂的小辣椒
      2022-03-07
      你好,问题已解决,可以再观察下。
      2022-03-07
      回复
  • 老张
    老张
    2022-02-22
    update({data:{arr:_.set(newArr)})
    
    

    试试_.set

    2022-02-22
    有用
    回复 2
    • 躺在海上看书
      躺在海上看书
      发表于小程序端
      2022-02-22

      都用这种方式可能会比较麻烦,多个数组就按设置多个。以前的方法没有发现错误,是最近才出现这种情况的。

      2022-02-22
      回复
    • 多粑
      多粑
      2022-02-24
      我测试过了,set还是会出现同样的问题
      2022-02-24
      回复
登录 后发表内容