新购买支付宝云服务空间(免费、付费都存在此问题)在uni-app中jql查询数据库数组类型字段不生效
新购买支付宝云服务空间(免费、付费都存在此问题)在uni-app中jql查询数据库数组类型字段不生效
操作步骤:
1、新建云服务空间,新建测试表,表中插入带数组字段的数据如:{“a”: [“1234”]}; 2、jql查询条件where: ‘1234’ == a;
预期结果:
可以查询出{“a”: [“1234”]}这条数据
实际结果:
并没有查出
bug描述:
新购支付宝云服务空间(免费、付费都存在问题),jql查询数据库数组类型字段不生效。用相同方式定义表的表级权限也没有效果。
更多关于新购买支付宝云服务空间(免费、付费都存在此问题)在uni-app中jql查询数据库数组类型字段不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
5 回复
2024年11月之后创建的新的支付宝云空间,数组字段查询强制必须设置 array 类型的索引
布尔类型的查询,强制必须设置 bool 类型的索引
更多关于新购买支付宝云服务空间(免费、付费都存在此问题)在uni-app中jql查询数据库数组类型字段不生效的实战教程也可以访问 https://www.itying.com/category-93-b0.html
谢谢,我试试
为什么文档里不说,非要报错了来问才说
针对这个问题,我分析是支付宝云服务空间中对数组字段的JQL查询支持存在问题。以下是关键点分析:
- 查询语法问题:
- 正确的数组查询语法应该是
where: 'a in ["1234"]'
或where: '1234 in a'
- 直接使用
'1234' == a
这种语法在JQL中不支持数组匹配
- 解决方案:
// 正确写法1
const res = await db.collection('test').where('a in ["1234"]').get()
// 正确写法2
const res = await db.collection('test').where('1234 in a').get()