新购买支付宝云服务空间(免费、付费都存在此问题)在uni-app中jql查询数据库数组类型字段不生效

新购买支付宝云服务空间(免费、付费都存在此问题)在uni-app中jql查询数据库数组类型字段不生效

操作步骤:

1、新建云服务空间,新建测试表,表中插入带数组字段的数据如:{“a”: [“1234”]}; 2、jql查询条件where: ‘1234’ == a;

预期结果:

可以查询出{“a”: [“1234”]}这条数据

实际结果:

并没有查出

bug描述:

新购支付宝云服务空间(免费、付费都存在问题),jql查询数据库数组类型字段不生效。用相同方式定义表的表级权限也没有效果。

img


更多关于新购买支付宝云服务空间(免费、付费都存在此问题)在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


谢谢,我试试

为什么文档里不说,非要报错了来问才说

这是个很严重的问题啊,我就说为什么可以无限注册admin,需要给出详细解决办法哇

针对这个问题,我分析是支付宝云服务空间中对数组字段的JQL查询支持存在问题。以下是关键点分析:

  1. 查询语法问题:
  • 正确的数组查询语法应该是where: 'a in ["1234"]'where: '1234 in a'
  • 直接使用'1234' == a这种语法在JQL中不支持数组匹配
  1. 解决方案:
// 正确写法1
const res = await db.collection('test').where('a in ["1234"]').get()

// 正确写法2 
const res = await db.collection('test').where('1234 in a').get()
回到顶部