收藏
回答

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

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

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,包括聚合操作,好像都不行,有大神知道怎么实现么,或者替代方法也行

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

5 个回答

  • 禾店科技
    禾店科技
    2021-05-08

    暂时不支持。

    2021-05-08
    有用 1
    回复
  • 东
    2020-09-15

    这个简单的操作还不支持吗?文档都翻遍了,找不到解决办法

    2020-09-15
    有用
    回复
  • 宁静淡泊
    宁静淡泊
    2020-03-25

    是啊,查询field1大于field2的所有记录,看了好多都没有,云开发没有字段之间比较的api吗?

    2020-03-25
    有用
    回复 1
    • 东
      2020-09-15
      有没有解决办法?
      2020-09-15
      回复
  • 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
      回复
登录 后发表内容
问题标签