l***@qq.com
l***@qq.com
  • 发布:2024-10-22 11:03
  • 更新:2024-10-22 11:03
  • 阅读:36

【报Bug】clientDB(nosql) 新增数据时非required字段也要求填写

分类:uniCloud

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

操作步骤:

xxx.shema.json

{  
    "bsonType": "object",  
    "required": ["client_id"],  
    "permission": {  
        "read": "auth.uid==doc._id",  
        "create": true,  
        "update": "auth.uid==doc._id",  
        "delete": false  
    },  
    "properties": {  
        "_id": {  
            "description": "微信Open ID",  
            "bsonType": "string",  
            "trim": "both",  
            "maxLength": 128,  
            "foreignKey": "account._openid",  
            "forceDefaultValue": { "$env": "uid" }  
        },  
        "client_id": {  
            "description": "推送ID",  
            "bsonType": "string",  
            "trim": "both",  
            "maxLength": 128  
        },  
        "last_login": {  
            "bsonType": "date",  
            "description": "最后登陆时间"  
        }  
    }  
}

客户端代码

uniCloud.database().collection('xxx').add({ _id: openId, client_id: cid })

预期结果:

新增数据成功

实际结果:

["last_login"] 类型不匹配

bug描述:

我的schema中写了一个date类型的last_login(非required),当我在clientDB调用add方法时,如果我不指定last_login则会返回“last_login 类型不匹配”。必须要手动在add的参数中增加last_login字段才行。

此外还有另一个bug,如果我写了forcedDefaultValue: {"$env": "now"}的话,我不填写last_login会报上面的错误,我填写了的话会告诉我和默认值不匹配……按照文档的说明应该是会覆盖上传的值,我不太理解为什么会进行比对并报错……

2024-10-22 11:03 负责人:无 分享
已邀请:

要回复问题请先登录注册