收藏
回答

doc.update不能完全更新数组

问题模块 框架类型 问题类型 终端类型 AppID 基础库版本
云开发 小程序 Bug 客户端 wxfd8dc3f04b481448 1.02

- 当前 Bug 的表现(可附上截图)

云数据库有个数组imgUrl

"detail":{

"imgUrl":{

4.jpg

1.jpg

7.jpg

3.jpg

2.jpg

        }

}

想用doc.update更新imgUrl,因为imgUrl是用户上传的图片,数量不确定,发现如果新上传imgUrl的length大于原来的,可以正常更新,如果小于的话,只是更新了部分数据。例如,原来有5个,新数组有2个,那就更新了0和1的两个数组元素,其余的3个继续保留了。


- 预期表现

实现数组的完全覆盖更新。


- 复现路径


- 提供一个最简复现 Demo


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

2 个回答

  • 老吴
    老吴
    2018-10-25

    云函数


    // 云函数入口文件

    const cloud = require('wx-server-sdk')

    cloud.init()

    const db = cloud.database()

    const _ = db.command


    // 云函数入口函数

    exports.main = async(event, context) => {

    let id = event.id

    let data = event.data

    let _data = {

    "detail": data

    }

    try {

    return await db.collection('trouble').doc(id).update({

    data: _data,

    }).then(res => {


    })

    } catch (e) {

    console.error(e)

    }

    }


    2018-10-25
    赞同
    回复
  • 张吉(jimmyjzhang)
    张吉(jimmyjzhang)
    2018-10-25

    是在云函数还是在小程序操作的呢

    2018-10-25
    赞同
    回复 2
    • 老吴
      老吴
      2018-10-26

      小程序里调用云函数操作

      2018-10-26
      回复
    • 张吉(jimmyjzhang)
      张吉(jimmyjzhang)
      2018-10-26

      可以使用set()方法替代update()试试

      2018-10-26
      回复
登录 后发表内容