z***@qq.com
z***@qq.com
  • 发布:2022-04-02 13:44
  • 更新:2022-04-18 14:37
  • 阅读:558

请问JQL联表查询,当副表有权限限制的时候,应该怎么写where语句?

分类:uniCloud
                db.collection('biz-fav')  
                .where('user_set == 0 && status == 0')  
                .field('card,name,update_time')  
                .orderBy('update_time desc')  
                .getTemp(),  
                db.collection('biz-card')  
                .where('status == 0')  
                .field('_id,company,name,tel,product,fav_times,user_set,status,update_time')  
                .getTemp()  

                主表"read": true  
                副表"read": "(doc.status == 0)"  

试了很多种写法,都提示权限不足,猜测是因为主表中取出的数据中外键指向副表的,副表的那条数据是status!=0的原因,但是如何写where才能避免这样呢?

PS:刚试了一下,老的虚拟联表的方法是可以查询到的,但是按照官方说法,主表数据量大的情况下,性能会很糟糕;
那么问题就是,新的临时表(getTemp)的方法只考虑了主表的过滤,而未考虑副表的过滤,如果副表需要过滤的情况下,使用临时表(getTemp)的方式是无法通过权限校验的,请问这是bug还是说有什么更深层次的考虑?

2022-04-02 13:44 负责人:无 分享
已邀请:
DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

Bug已确认,感谢反馈

DCloud_uniCloud_WYQ

DCloud_uniCloud_WYQ

线上已修复,可以通过上传schema触发更新,HBuilderX内置的uniCloud插件会在下个版本修复

DCloud_UNI_Anne

DCloud_UNI_Anne

HBuilderX Alpha 3.4.6 已修复

该问题目前已经被锁定, 无法添加新回复