小程序云函数更新数组的指定位置元素

云开发文档里写的方式是如果更新第1个就写字段名为’array.0’。如:
小程序云函数更新数组的指定位置元素_第1张图片
但是我想更新一个数组的第i个元素(存的是对象)的key属性,i为参数,我目前使用了模版字符串`array.${i}.key`和字符串拼接‘array.’+i+’.key’,这两种方法都不行。

在看到这篇教程的第一个解决办法之后,我找到了解决思路!

用$位置占位符:

exports.main = async(event, context) => {
    return db.collection('user').where({
        '_id':event.docID,
        'array.key': event.key
    }).update({
        data: {
            'array.$.key': event.value,
            arrNum: _.inc(1)
        },
        success: res => {
            console.log(res)
        }
    })
}

where不仅可以查找文档,还可以查找文档里的某个数组里符合条件的元素的位置!
之后使用存有位置数据的$符号就能更新数组里第i个元素的属性了。

我的原回答:云函数如何更新指定的数组元素?- 微信开放社区 https://developers.weixin.qq.com/community/develop/doc/0000e479ca4890c7be1941bbc5b800

你可能感兴趣的:(web后端,数据库)