收藏
回答

云数据库查询时where条件,没有起作用?

  return new Promise(function(resolvereject) {

    const db = wx.cloud.database()

    // 查询指定openid的用户

    db.collection('user').where({

      // _openid: openid

      _openid: '0' // 无论此处为何值都能查到数据

    }).get().then(res => {

      if(res.data.length === 1) {

        console.log('find',res.data)

        resolve(res)

      }

      else {

        console.log('not find')

      }

    }).catch(err => {

      reject(err)

    })


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

1 个回答

  • 老张
    老张
    2019-12-18

    猜当仅所有者可读时,_openid会被替换成用户的openid

    2019-12-18
    赞同 1
    回复 6
    • JAVA不吃辣椒
      JAVA不吃辣椒
      2019-12-18
      看了一下数据库, 权限设置里,只有创建者可写。
      可是我想做一个用户管理模块,管理员要改操作员数据怎么办呢?
      2019-12-18
      回复
    • 老张
      老张
      2019-12-18回复JAVA不吃辣椒
      如果是所有人可读,你再试这条语句。不行的话,只能多增加一个字段比如openid
      2019-12-18
      回复
    • JAVA不吃辣椒
      JAVA不吃辣椒
      2019-12-18回复老张
      权限我改成“所有用户可读,仅创建者可写”了,这样果然条件错误就查不到了,但是我担心以后用程序的管理员登录也改不了别人的数据
      2019-12-18
      回复
    • 老张
      老张
      2019-12-18回复JAVA不吃辣椒
      用云函数就是管理员身份。
      2019-12-18
      回复
    • JAVA不吃辣椒
      JAVA不吃辣椒
      2019-12-19回复老张
      好的,谢谢啦。
      2019-12-19
      回复
    查看更多(1)
登录 后发表内容
问题标签