收藏
回答

把更新云数据库字符串中的下标替换为变量,如何操作啊?求救!

db.collection('todos').doc('test').update({
  data: {
    'root.objects.1.numbers.2': 80
  },})

想把这里的下标1和2 替换为变量,如何操作啊,求救!

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

3 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-08-21

    你这个应该是在云函数里操作的吧,可以替换成变量,下面举个例子,ids 替换成你表里的_id值

    a,b是下标变量

    var ids = ['3c4c6d855d5a1b5e0390982638bdcd27', '90b4093b5d5a1b5d03914fbc49c5a848', '90b4093b5d5a1b40039133d53b9d07ff']
        for (var i in ids) {
          var a = i * 1, b = i + 2,
            key = 'root.objects.' + a + '.numbers.' + b
          db.collection('counters')
            .where({
              _id: ids[i]
            })
            .update({
              data: { [key]: 80 }
            }).then(res=>{
              resolve({ listID: ids[i]})
            })
        }

    执行结果如下:


    2019-08-21
    有用 1
    回复 1
    • 豆
      2019-08-21

      感谢,困扰我多日的问题终于解决了![key]: 80,这个[]有如指针啊,把key引用内容传送过去,不加[]的话就把key字符串传过去了。多谢!

      2019-08-21
      回复
  • 琳
    2019-09-12
    db.collection('todos').doc('test').update({
      data: {
        'root.objects.1.numbers.2': 80
      },})

    可以试试下面的写法,两个变量分别是var1和var2

    [`root.objects.${var1}.numbers.${var2}`]: 80

    2019-09-12
    有用
    回复
  • x_Qiang
    x_Qiang
    2019-08-20

    键值对的键里面不能写变量

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