uni-app中数据库参数bsonType设为double时,上送整数报错,上送浮点数也报错
uni-app中数据库参数bsonType设为double时,上送整数报错,上送浮点数也报错
示例代码:
"price": {
"bsonType": "double",
"description": "商品价格",
"title": "价格",
"trim": "both"
},
操作步骤:
"bsonType": "double",
"description": "商品价格",
"title": "价格",
"trim": "both"
将数据库中price
的bsonType
设为double
浮点数后,在用add
增加数据时,返回提示 Error: 数据库验证失败:["price"]类型无效
预期结果:
整数上传应该可以上传
实际结果:
返回提示 Error: 数据库验证失败:["price"]类型无效
bug描述:
add增加数据时,price
为整数会报错。
更多关于uni-app中数据库参数bsonType设为double时,上送整数报错,上送浮点数也报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html
9 回复
是不是不小心传成了字符串?
回复 DCloud_uniCloud_WYQ: 将数据库的类型改成string了,放弃用double了
回复 三横一竖日月天: 请问现在还是用string吗?这样是不是就不能进行数据比较了?
回复 5178008pp: 用字符串就可以完全可以了
回复 三横一竖日月天: 用了number,用string不能比较
回复 三横一竖日月天: 用number有个bug,不能自动生成代码
回复 5178008pp: 比较时可以字符串转数字了再比较
在uni-app的云数据库schema中,bsonType
设为double
时确实需要注意数据类型问题。double
类型要求传入的值必须是JavaScript的Number类型,且不能是字符串形式的数字。
问题可能出现在:
- 传入的price值是字符串类型而非数字类型
- 数据库schema验证严格模式下的类型检查
解决方案:
// 确保传入的是数字类型
const data = {
price: Number(yourPriceValue) // 显式转换为数字
}
// 或者直接传入数字字面量
const data = {
price: 29.9 // 直接使用数字
}