w***@outlook.com
w***@outlook.com
  • 发布:2025-02-19 12:56
  • 更新:2025-02-19 19:57
  • 阅读:48

【报Bug】云数据库查询异常

分类:uniCloud

产品分类: uniCloud/支付宝小程序云

操作步骤:

opendb-app-versions表内数据
{
"appid": "UNIXXXXXXX",
"platform": ["Android"],
"stable_publish": true,
}
JQL文件查询.jql执行以下语句

db.collection('opendb-app-versions').where({  
        appid: '__UNI__XXXXXXX',  
        platform: 'Android',  
        stable_publish: true,  
}).get();

查询结果为: []

预期结果:

查询结果为: [{
"appid": "UNIXXXXXXX",
"platform": ["Android"],
"stable_publish": true,
}]

实际结果:

查询结果为: []

bug描述:

opendb-app-versions表内数据
{
"appid": "UNIXXXXXXX",
"platform": ["Android"],
"stable_publish": true,
}
JQL文件查询.jql执行以下语句

db.collection('opendb-app-versions').where({  
        appid: '__UNI__XXXXXXX',  
        platform: 'Android',  
        stable_publish: true,  
}).get();

查询结果为: []
经过对照测试 1发现 platform无法匹配数据库内的数组字段 2stable_publish无法匹配数据库内的 布尔值

备注:以上结果基于 支付宝云免费版测试得出,付费版无此问题。

2025-02-19 12:56 负责人:无 分享
已邀请:

最佳回复

DCloud_uniCloud_VK

DCloud_uniCloud_VK

大约从2024年11月起,支付宝云新创建的空间,数组字段的查询需要添加 array索引才能查询,布尔值类型的字段需要去除 varchar 类型的索引(也可以添加为bool类型的索引)

即支付宝云空间对索引的类型有要求,不能全是varchar类型,且数组字段查询必须添加array索引,同时对象数组字段不支持查询

  • w***@outlook.com (作者)

    没想到是vk大佬回复!

    正好,用的你的client端框架初始化的,刚看了下确实 索引全是默认的 varchar(官方的opendb-app-versions.index.json也是一样 没有标注type类型)。建议大佬给 框架上 常见问题 强调下。这个坑踩得猝不及防。

    卡了2天,最后实在搞不明白 才提到论坛上。

    2025-02-20 14:16

要回复问题请先登录注册