nodejs之egg-mongoose与mongodb的浮点型映射问题
mongoose的Schema
mongoose的Schema主要包括:
1.String 字符串
2.Number 数字,包括Int,float,double
3.Boolean bool
4.Array 数组
5.Buffer 二进制
6.Date 时间
7.ObjectId mongodb主键一般都是用{_id:Schema.Types.objectId}
mongodb的数据类型
1.String
2.Double
3.Int
4.Boolean
…
mongoose的Number与mongodb的Number类型区别
1.问题
如果mongoose的数据类型为Number,存的是浮点型例如0.3,虽然包括了浮点型,但是当映射到mongodb中时,如果为浮点型,会被强制转换为NumberInt类型,就变成了0。
2.解决办法
mongodb和mongoose的Schema都统一为String类型,然后在代码中通过Number方法自动转换。