收藏
回答

云开发中数据库字段更新为另一字段值问题?

场景是 批量更新指定字段值,数值为当前记录的另一个字段值。

db.collection('testList').update({

   data: {

      field1: _.set('$field2')

   },

});


类似于SQL中的 update table_name set field1 = field2 where ...

更新前集合:[{ A:1, B: 2 }, { A:3, B: 4 }, ...]  更新后:[{ A:2, B: 2 }, { A:4, B: 4 }, ...]  让A的值等于B的值,周期性重置功能

看了云开发的API,包括聚合操作,好像都不行,有大神知道怎么实现么,或者替代方法也行

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

2 个回答

  • Yan Lu
    Yan Lu
    2019-12-16

    同问。现在有办法解决吗?

    2019-12-16
    赞同
    回复 3
    • Stephen
      Stephen
      2019-12-16
      没有找到相关API支持,现在是把需要更新的数据放在另一个集合里去实现的。
      2019-12-16
      回复
    • Yan Lu
      Yan Lu
      2019-12-16回复Stephen
      您好,我看见您在另外一个帖子里写的:
      const _ = db.command
      const $ = db.command.aggregate
      ... .update({
        data: {
          sum: _.inc($.multiply(['$initVal', mul]))
        }
      })
      这实际不就是基于initVal的值去更新sum的值吗?
      2019-12-16
      回复
    • Stephen
      Stephen
      2019-12-17回复Yan Lu
      data: { field1: $.multiply(['$field2', 0]) } 理论上这样是可以更新的,当时急没有时间去验证,采用的其他途径实现的。
      2019-12-17
      回复
  • 老张
    老张
    2019-10-15

    暂时不支持。

    2019-10-15
    赞同
    回复 3
    • Stephen
      Stephen
      2019-10-15
      有什么代替的解决方式吗?
      2019-10-15
      回复
    • 老张
      老张
      2019-10-15回复Stephen
      读出来,改完后再存回去。
      2019-10-15
      回复
    • Stephen
      Stephen
      2019-10-15回复老张
      个别记录还好处理,但批量操作很多记录的时候 就不可取了。。
      2019-10-15
      回复
登录 后发表内容
问题标签