把更新云数据库字符串中的下标替换为变量,如何操作啊?求救!
发布于 7 年前 作者 fangmin 13510 次浏览 来自 官方Issues
db.collection('todos').doc('test').update({
  data: {
    'root.objects.1.numbers.2': 80
  },})

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

3 回复

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

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

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

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

你这个应该是在云函数里操作的吧,可以替换成变量,下面举个例子,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]})
        })
    }

执行结果如下:

回到顶部