我在node.js / mongoDB / mongoose上启动了我的第一个测试应用程序,这是一个非常简单的应用程序,旨在创建数据库中的记录并检索它们。
我创建了一个类似的模型:
var Car = new Schema({
brand : String,
speed : Number,
date : { type: Date, default: Date.now }
});
这很好,除了我希望能够为速度而不是整数提供浮点值。我尝试了Decimal和Float,但没有一个正在工作。 我没有在文档中找到。
有什么想法吗?
答案 0 :(得分:45)
我根本不熟悉mongoose和node.js,但我搜索了一下,发现存储浮点值必须使用Number
类型。您可以在speed
字段中存储任何浮点值。 Article
希望得到这个帮助。
答案 1 :(得分:0)
是的,您可以使用“ Decimal128”类型。
https://mongoosejs.com/docs/api.html#mongoose_Mongoose-Decimal128
答案 2 :(得分:0)
您可以创建自己的自定义标签。像这样
from imageai.Detection import ObjectDetection
import os
import time
exec_path=os.getcwd()
yolo_obj=ObjectDetection()
yolo_obj.setModelTypeAsYOLOv3()
yolo_obj.setModelPath(os.path.join(exec_path,"yolo.h5")
yolo_obj.loadModel()
来源是从@ mongoosejs / double
复制的答案 3 :(得分:-2)
虽然mongoDB完全支持float类型,但是mongoose只支持Number为整数的类型。如果你尝试使用mongooses类型的数字保存到mongoDB浮点数,它将被转换为字符串。
要对此进行排序,您需要为mongoose加载一些插件,这将扩展其值类型。有些插件最适合使用货币或日期,但在您的情况下,我会使用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
}
});
希望它有所帮助。