收藏
回答

Error: "i" is read-only ?

尝试对database中的todos集合每条记录的done字段修改,代码、错误显示如下:

todos集合:

代码:

    const db=wx.cloud.database()
    const $ = db.command.aggregate
    const _ = db.command


    const todosColAgg = db.collection('todos').aggregate()
    const todosIdArr = db.collection('todos')
    .field({
      _id : true
    })
    .get()
    .then( res => {
      for(const i = 0 ; i < res.data.length ; i++){
        db.collection('todos').where({ _id : res.data[i]}).update({
          data : {
            done : "aaaaaaaaaa"
          }
        }).then( res => {
          console.log(res.stats.updated)
        })
      }
    })

Error:

请问问题在哪,应该如何操作

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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-02-05

    你也是个人才啊,最起码先了解一下const是啥再用啊,用let就行了


    2020-02-05
    有用 1
    回复 11
    • FWAN
      FWAN
      2020-02-05
      使用let后不再报错,但是数据库字段并没有更新
      2020-02-05
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-05回复FWAN
      你有对这条数据写的权限吗
      2020-02-05
      回复
    • FWAN
      FWAN
      2020-02-05回复Mr.Zhao

        "read": true, 
        "write": true 
      }
      2020-02-05
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-05回复FWAN
      get 能出来吗
      2020-02-05
      回复
    • FWAN
      FWAN
      2020-02-05回复Mr.Zhao
      db.collection('todos').where({ _id : id名}).update({ 
                data : { 
                  done : "aaaaaaaaaa" 
                } 
              })
      或者调用doc方法都是可以改变某条记录的
      2020-02-05
      回复
    查看更多(6)
登录 后发表内容
问题标签