收藏
回答

在云开发后台数据库里想把字段复制一个出来,如代码所示,哪里写错了?

db.collection('orders')
  .where({
    _id: '3c4c6d855d695c480dde76744c1cc938'
  })
  .update({
    data: {
      sellerOpenid: $_openid
    }
  })


提示:SymanticError: $_openid is not defined (at line 7, col 21)

正确的语法是?

开发文档哪里有说明吗?找了半天没找到,只能来请教

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

2 个回答

  • o0o有脾气的酸奶
    o0o有脾气的酸奶
    2019-09-17

    什么叫把字段复制出来?

    你那语句是使用$_openid更新sellerOpenid字段,而且$_openid是一个未定义的变量,肯定报错

    2019-09-17
    有用
    回复 1
    • 郑旭东
      郑旭东
      2019-09-17
      嗯,我就是想处理下历史数据,把_openid字段赋值给sellerOpenid
      2019-09-17
      回复
  • 老张
    老张
    2019-09-17

    1、好象不支持这种需求。

    2、$是什么,没有定义啊?

    2019-09-17
    有用
    回复 2
    • 郑旭东
      郑旭东
      2019-09-17

      我看到隔壁文档里有类似$引用字段的用法:

      const $ = db.command.aggregate
      db.collection('scores').aggregate()
        .addFields({
          totalHomework: $.sum('$homework'),
          totalQuiz: $.sum('$quiz')
        })
        .addFields({
          totalScore: $.add(['$totalHomework', '$totalQuiz', '$extraCredit'])
        })
        .end()


      2019-09-17
      回复
    • 老张
      老张
      2019-09-17回复郑旭东
      这个引用不也得先申明吗?而且这里的$指代aggregate,且只有aggregate里$才是通配符。
      2019-09-17
      回复
登录 后发表内容
问题标签