我正在使用MongoDB v3.6.3.。
我看到similar question收到了很好的答案。那我为什么要问这个问题?
我的MongoDB模式如下:
RewriteRule .* /error [L,R]
所以我的问题是,我实现此方法的方式是否有问题。考虑到我已经在数据库中存储了一个十进制数字。可以在当前架构中存储十进制数字吗?还是因为我错过了一步而将来会出现错误?
谢谢。
答案 0 :(得分:1)
Number
类型是cannot accurately represent decimal values的浮点数字表示形式。如果您的用例不需要浮点数的精度,这可能很好,但是如果精度很重要(例如,分数货币值),则不合适。
如果您想精确地存储和使用十进制值,则应改用Mongoose中的Decimal128
type。这映射到MongoDB 3.4+中可用的Decimal 128(aka NumberDecimal
)BSON数据类型,也可以使用Aggregation Framework在服务器端计算中对其进行操作。
如果您的rating
字段不需要精确度,则可以继续使用Number
类型。这样做的原因之一是Number
类型是JavaScript固有的,而Decimal128不是。
有关更多详细信息,请参见A Node.js Perspective on MongoDB 3.4: Decimal Type。