收藏
回答

云函数如何更新指定的数组元素?

文档里写的方式是如果更新第1个就写字段名为'array.0',但是我想更新一个数组的第i个元素,i为参数,我目前使用了模版字符串`array.${i}`和字符串拼接‘array.'+i,这两种方法都不行,请问有什么解决办法吗?谢谢!

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

3 个回答

  • 连夜的月光
    连夜的月光
    2019-09-04

    找到解决办法了!用$位置占位符

    https://developers.weixin.qq.com/community/develop/article/doc/00022a7c234cd8865238c81ab5bc13 的第一种办法想到的解决思路:

    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)
            }
        })
    }


    2019-09-04
    有用 2
    回复 7
    • 苏醒
      苏醒
      2019-11-01
      代码哪个地方对应上面的第i个元素,看不出来
      2019-11-01
      回复
    • 单雨
      单雨
      2019-12-31
      $是索引通配符
      2019-12-31
      回复
    • 单雨
      单雨
      2019-12-31
      相当于i
      2019-12-31
      回复
    • 孟昊迪
      孟昊迪
      2020-09-03回复单雨
      怎么把i保存到$中呢?
      2020-09-03
      回复
    • Ran
      Ran
      2020-09-13
      太好了
      2020-09-13
      回复
    查看更多(2)
  • li
    li
    2020-05-06

    为什么我这样写不行啊

    2020-05-06
    有用
    回复
  • \
    \
    2019-09-05

    在此之前都是用循环处理的,贼慢,新方法不错

    2019-09-05
    有用
    回复
登录 后发表内容
问题标签