收藏
回答

collection.where()有时候不起作用?

版本2.10.2,在使用云开发collection.where()通过openid过滤数据的时候,两段完全相同的代码,只是调用方法的数据库实例不同而已,一个起作用一个怎么也不起作用,会返回全部的值,甚至胡乱输入一个查询条件都能全部返回;代码如下(userListCol和photosCol是全局定义的,引用没有报错):

onLoad: function (options) {

    this.setData({

      openid: options.id

    })

    //这个起作用

    userListCol.where({ _openid: options.id}).get().then(res=>{

      console.log('userList', res)

      this.setData({

      userInfo:res.data[0]

    })});

    //这个不起作用

    photosCol.where({ _openid: options.id}).get().then(res => {

      console.log('photos',res);

      this.setData({

        userPhotos: res.data

      })

     });

  },

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

1 个回答

  • Mr.Zhao
    Mr.Zhao
    2020-02-28

    你在云开发控制台 高级模板里面 运行一下

    2020-02-28
    有用 1
    回复 6
    • leo
      leo
      2020-02-28
      在模板里可以,怎么回事啊。。。
      2020-02-28
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-28回复leo
      你改成云函数执行吧,集合读写权限的问题
      2020-02-28
      回复
    • leo
      leo
      2020-02-28回复Mr.Zhao
      好的,可是如果权限问题那为啥第一个在本地可以正常执行呢,是数据库权限设置的问题嘛?
      2020-02-28
      回复
    • Mr.Zhao
      Mr.Zhao
      2020-02-28回复leo
      比如你在小程序端add的数据,可以在小程序端查的到,如果是在控制台add的,得用云函数。
      2020-02-28
      回复
    • leo
      leo
      2020-02-28回复Mr.Zhao
      果然是这样,更改了权限就OK了,非常感谢!
      2020-02-28
      回复
    查看更多(1)
登录 后发表内容
问题标签