y***@sina.com
y***@sina.com
  • 发布:2024-02-26 11:54
  • 更新:2024-06-08 00:26
  • 阅读:227

【报Bug】JQL更新数组的时候,以数组下标作为key,报数据库验证失败

分类:uniCloud

产品分类: uniCloud/App

示例代码:
const db = uniCloud.database();    
let collection = db.collection("table1")    
let res = await collection.where({_id:'doc-id'})    
  .update({    
    arr: {    
      1: "uniCloud"    
    }    
  })

操作步骤:

更新数组时,以数组下标作为key

预期结果:

数据库数组字段更新成功

实际结果:

更新失败,数据库报错

bug描述:

JQL文档里面的说明:
更新数组时,以数组下标作为key即可,比如以下示例将数组arr内下标为1的值修改为 uniCloud

const db = uniCloud.database();    
let collection = db.collection("table1")    
let res = await collection.where({_id:'doc-id'})    
  .update({    
    arr: {    
      1: "uniCloud"    
    }    
  })

按此方法,数据库会报错:
数据库验证失败:[\"xxx(字段名)\"]类型无效

2024-02-26 11:54 负责人:无 分享
已邀请:
limingfan

limingfan

@DCloud_HB_WJ 官方不解决下这个问题吗

1***@qq.com

1***@qq.com

async upSeenList(uid,num){

    await db.collection("uni-id-users").doc(uid).update({         

        seenlist:{  
             1:'a'  
        }         
    })  

}
我的这样可以,但是把下标 1 换成变量就不行了,好像是语法不支持

要回复问题请先登录注册