在uni-id-users中定义了role如下:
"role": {
"bsonType": "array",
"title": "角色",
"description": "用户角色",
"enum": {
"collection": "uni-id-roles",
"field": "role_id as value, role_name as text"
},
"foreignKey": "uni-id-roles.role_id"
某条记录其role为["visitor_personal"]
那么我在前端<unicloud-db>组建where属性过滤时为何这么写不对:
<unicloud-db ref="udb" collection="uni-id-users,uni-id-roles"
field="username,user_id,user_dept,mobile,status,email,role{role_name},dcloud_appid,register_date" :where="where" page-data="replace" :orderby="orderby" :getcount="true" :page-size="options.pageSize" :page-current="options.pageCurrent"
v-slot:default="{data,pagination,loading,error,options}" :options="options" loadtime="manual" @load="onqueryload">
其中,where:"role[0]=='visitor_personal'" 这么写在前端组建调用数据库获取数据时没办法把role为visitor_personal的数据筛选出来
1***@qq.com (作者)
我试过了,不可以。其他非数组型字段(如username)可以这样写,但是role是数组型的,这样写不对
2021-09-28 16:18
DCloud_uniCloud_WYQ
回复 1***@qq.com: 不对是什么表现?查不到数据还是有错误信息?
2021-09-29 11:11
1***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 就是查不到数据,role为visitor_personal的数据不显示(数据库里确实存在这条数据)。当我把查询条件换为username,mobile这些时就可正常查询,应该不是组件数据绑定出错。
2021-09-29 14:21
1***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 我将visitor_personal换位系统默认的admin也没办法显示超级管理员
2021-09-29 14:26
DCloud_uniCloud_WYQ
回复 1***@qq.com: 之前没仔细看你帖子里面的描述,你联表查询后过滤的话需要注意关联字段已经被替换成副表内容了。你可以在HBuilderX的jql管理器里面写一下试试就知道怎么查了,关于联表后的数据结构的文档在这:https://uniapp.dcloud.net.cn/uniCloud/clientdb?id=lookup
2021-09-29 14:39
1***@qq.com (作者)
回复 DCloud_uniCloud_WYQ: 哈哈哈哈问题就出在这,我去看看,真的太谢谢你啦!!!!!
2021-09-29 14:55