uni-app 【报Bug】 unicloud-db/JQL中where="size(arr)==0||arr.code=='0001'"只获取到了arr为空数组的数据

uni-app 【报Bug】 unicloud-db/JQL中where="size(arr)==0||arr.code==‘0001’"只获取到了arr为空数组的数据 产品分类: uniCloud/App

示例代码:

<unicloud-db ref="udb2" v-slot:default="{data, pagination, loading, hasMore, error}" collection="test" field="title,arr"   
             where="size(arr)==0||arr.code=='0001'">  
    {{data}}  
</unicloud-db>

操作步骤:

运行到浏览器显示

预期结果:

[
{“title”: “title1”,“arr”: []},
{“title”: “title2”, “arr”: [ {“code”: “0001”,“name”: “name1”},{ “code”: “0002”,“name”: “name2”}]}
]

实际结果:

[
{“title”: “title1”,“arr”: []}
]

bug描述:

jql 查询数据库中数据,条件为:arr字段长度等于0或者arr.code等于’0001’,即 where=“size(arr)==0||arr.code==‘0001’”。最后只获取到arr字段长度等于0的字段。 数据:

[  
{"title": "title1","arr": []},  
{"title": "title2", "arr": [{"code": "0001","name": "name1"},{ "code": "0002","name": "name2"}]}  
]

更多关于uni-app 【报Bug】 unicloud-db/JQL中where="size(arr)==0||arr.code=='0001'"只获取到了arr为空数组的数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html

4 回复

如果使用了数据库运算方法查询语句会被转换成复杂表达式,此时不能通过这种方式匹配数组内的元素

更多关于uni-app 【报Bug】 unicloud-db/JQL中where="size(arr)==0||arr.code=='0001'"只获取到了arr为空数组的数据的实战教程也可以访问 https://www.itying.com/category-93-b0.html


arr.code=='0001’可以改写成啥样呢

回复 y***@yeah.net: 现在有个稍微复杂点的写法,‘size(arr)==0||size(filter(arr, “item”, eq("$$item.code",“0001”)))!=0’

回复 DCloud_uniCloud_WYQ: 谢谢大佬

回到顶部