uni-app中数据库参数bsonType设为double时,上送整数报错,上送浮点数也报错

uni-app中数据库参数bsonType设为double时,上送整数报错,上送浮点数也报错

示例代码:

"price": {  
  "bsonType": "double",  
  "description": "商品价格",  
  "title": "价格",  
  "trim": "both"  
},

操作步骤:

"bsonType": "double",  
"description": "商品价格",  
"title": "价格",  
"trim": "both"

将数据库中pricebsonType设为double浮点数后,在用add增加数据时,返回提示 Error: 数据库验证失败:["price"]类型无效

预期结果:

整数上传应该可以上传

实际结果:

返回提示 Error: 数据库验证失败:["price"]类型无效

bug描述:

add增加数据时,price为整数会报错。


更多关于uni-app中数据库参数bsonType设为double时,上送整数报错,上送浮点数也报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html

9 回复

是还不支持double吗?刚刚百度了下,推荐用init以分为单位存金额

更多关于uni-app中数据库参数bsonType设为double时,上送整数报错,上送浮点数也报错的实战教程也可以访问 https://www.itying.com/category-93-b0.html


是不是不小心传成了字符串?

回复 DCloud_uniCloud_WYQ: 将数据库的类型改成string了,放弃用double了

回复 三横一竖日月天: 请问现在还是用string吗?这样是不是就不能进行数据比较了?

回复 5178008pp: 用字符串就可以完全可以了

回复 三横一竖日月天: 用了number,用string不能比较

回复 三横一竖日月天: 用number有个bug,不能自动生成代码

回复 5178008pp: 比较时可以字符串转数字了再比较

在uni-app的云数据库schema中,bsonType设为double时确实需要注意数据类型问题。double类型要求传入的值必须是JavaScript的Number类型,且不能是字符串形式的数字。

问题可能出现在:

  1. 传入的price值是字符串类型而非数字类型
  2. 数据库schema验证严格模式下的类型检查

解决方案:

// 确保传入的是数字类型
const data = {
  price: Number(yourPriceValue) // 显式转换为数字
}

// 或者直接传入数字字面量
const data = {
  price: 29.9 // 直接使用数字
}
回到顶部