我有一个文档,其字段配置设置为
/** @ODM\Field(type="float") */
public $stock_price;
并且在我的mongodb上,该字段具有十进制验证
stock_price: {
bsonType: 'decimal',
description: 'must be a decimal and is required'
},
[当我尝试存储值时,它返回document validation failed
或cannot convert decimal to float
$odm = new stock();
$odm->stock_price = 10.99;
$dm->persist($odm);
$dm->flush();
返回document validation failed
如果我尝试转换为mongo十进制,插入也会失败。
$odm = new stock();
$odm->stock_price = new Decimal128("10.99");
$dm->persist($odm);
$dm->flush();
返回cannot convert decimal to float
mongodb-odm尚不支持十进制(2019年10月12日)v2.0.1。您可以派生项目并自己添加类型,还可以发出拉取请求。
我将复制浮点类型,创建一个十进制类型,更改其获取和写入逻辑以处理Decimal128,最后更新Type.php以包括新的DecimalType。