十进制/浮点mongoose为node.js

我在node.js / mongoDB / mongoose上启动我的第一个testing应用程序,这是一个非常简单的应用程序,旨在创buildDB中的logging并检索它们。

我创build一个模型,如:

var Car = new Schema({ brand : String, speed : Number, date : { type: Date, default: Date.now } }); 

这工作正常,除了我希望能够提供一个浮点值的速度,而不是一个整数。 我尝试了十进制和浮点数,但是没有一个在工作。 我也没有在文档中find。

任何想法 ?

我根本不熟悉mongoose和node.js,但是我search了一下,发现为了存储float值,你必须使用Numbertypes。 您可以在speed字段中存储任何浮点值。 条款 。

希望这个帮助。

当mongoDB完全支持floattypes时,mongoose只支持整型的Numbertypes。 如果您尝试使用mongoosestypes的数字保存到mongoDB浮点数,它将被转换为string。

为了解决这个问题,你需要为mongoose加载一些插件来扩展它的值types。 有一些最适合货币或date的插件,但在你的情况下,我会使用https://www.npmjs.com/package/mongoose-double

更改后的模型将如下所示:

 var mongoose = require('mongoose') require('mongoose-double')(mongoose); var SchemaTypes = mongoose.Schema.Types; var Car = new Schema({ brand: { type: String }, speed: { type: SchemaTypes.Double }, date: { type: Date, default: Date.now } }); 

希望能帮助到你。