uni-app 支付宝云数组运算方法 arrayElemAt 返回的结果仍然是null

uni-app 支付宝云数组运算方法 arrayElemAt 返回的结果仍然是null

操作步骤:

  • 执行如上代码,使用JQL的 arrayElemAt 运算方法

预期结果:

  • 应该返回数组的第一位

实际结果:

  • 返回了null

bug描述:

看下面的代码,支付宝云数组运算方法 arrayElemAt 返回的结果仍然是null。

return await dbJQL.collection(picTemp,userTemp,classTemp).field(`  
    picurl,       
    score,        
    checked,  
    createTime,  
    arrayElemAt(classid.name,0) as classname,  
    arrayElemAt(user_id.nickname,0) as nickname,  
    arrayElemAt(user_id._id,0) as user_id,  
    view_count,  
    download_count,  
    score_count  
`).get({getCount:true});

更多关于uni-app 支付宝云数组运算方法 arrayElemAt 返回的结果仍然是null的实战教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

字段有设置数组索引吗?

更多关于uni-app 支付宝云数组运算方法 arrayElemAt 返回的结果仍然是null的实战教程也可以访问 https://www.itying.com/category-93-b0.html


大佬,数组索引指的是什么

回复 咸虾米: 在uniCloud控制台创建索引,可以创建数据索引类型的索引。支付宝云数组字段必须要设置数组索引。

回复 DCloud_uniCloud_CRL: 好的,明白了,阿里云是不需要的吧,支付宝数组创建索引是现在的临时方案,还是以后支付宝云对数组都要设置索引那?

回复 咸虾米: 目前都需要设置索引,支付宝云还在优化。

根据你提供的代码和问题描述,arrayElemAt返回null可能是以下几个原因导致的:

  1. 数据源问题:确保classiduser_id字段确实是数组类型,并且数组中有元素。如果这些字段本身就是非数组类型或空数组,arrayElemAt会返回null。

  2. 字段引用问题:在JQL中引用嵌套字段时,确保路径正确。比如classid.name应该是数组中的对象包含name属性。

  3. 支付宝云函数限制:支付宝云环境可能对JQL操作有特殊限制,建议检查支付宝云官方文档中关于JQL数组操作的支持情况。

  4. 语法问题:尝试简化查询,先确认基础字段能正常返回,再逐步添加arrayElemAt操作。

建议先单独查询这些数组字段,确认数据结构是否符合预期:

return await dbJQL.collection(picTemp)
  .field('classid, user_id')
  .get()
回到顶部