58

node.js / mongoDB / mongoose で最初のテスト アプリを開始します。これは、DB でレコードを作成して取得することを目的とした非常に単純なアプリです。

次のようなモデルを作成します。

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

これは正常に機能していますが、整数値ではなく浮動小数点値を速度に提供できるようにしたいのです。Decimal と Float を試してみましたが、どれも機能していません。ドキュメントにも見つかりませんでした。

何か案が ?

4

5 に答える 5

83

少し検索したところ、浮動小数点値を格納するには型を使用する必要があると述べているこの記事を見つけましたNumber。フィールドには任意の float 値を格納できspeedます。

于 2011-04-09T20:32:13.753 に答える
-3

mongoDB は float 型を完全にサポートしていますが、mongoose は整数型の Number 型のみをサポートしています。Number の mongooses タイプを使用して mongoDB float number に保存しようとすると、文字列に変換されます。

これを整理するには、値の型を拡張する 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 
    }
});

それが役に立てば幸い。

于 2016-02-18T13:00:20.607 に答える