私はmysqlデータベースをmongodbに移行しています。しかし、私はMongoDbのデータ型を読み込んでいますが、float、double、decimalのような浮動小数点型への参照はありません。MongoDBは浮動小数点型をサポートしていますか?
また、SQLスキーマに10進数型のフィールドがいくつあるのですか?どうすればできますか?何ができますか?
私はmysqlデータベースをmongodbに移行しています。しかし、私はMongoDbのデータ型を読み込んでいますが、float、double、decimalのような浮動小数点型への参照はありません。MongoDBは浮動小数点型をサポートしていますか?
また、SQLスキーマに10進数型のフィールドがいくつあるのですか?どうすればできますか?何ができますか?
MongoDBのデータを記憶する:
int32
- 4バイト(32ビット符号付き整数)int64
- 8バイト(64ビットの符号付き整数)double
から8バイト(64ビットIEEE 754浮動小数点)ない正確な値の固定小数点はありませんMongoDBのmySQLのdecimal
型に相当しますが、Mongoには64ビットの浮動小数点数をdouble
として格納することができます。
JavaScriptのシェルであるMongoDBシェルは整数値と浮動小数点値の区別を認識せず、JavaScriptはすべての数値を64ビットの浮動小数点として表現するため、すべての数字を同じものとして扱いますそれらの基礎となるBSONタイプのものです。
ただし、ほとんどのMongoDB language driversは、整数型と浮動小数点型を区別します。
IEEE 754浮動小数点であるという事実は、再現可能なコンピューティングを重視する人々にとって非常に重要です。意外にも[Matlab](http://www.mathworks.com/support/solutions/en/data/1-79FEJH/index.html?product=ML&solution=1-79FEJH)でもこれをサポートしていません! – meawoppl
MongoDBは倍精度化をサポートしていますが、何らかの理由ですべてのドライバがそれらにインターフェイスを提供するわけではありません。
http://www.mongodb.org/display/DOCS/Data+Types+and+Conventionsから -
モンゴは、文字列、整数、ブール、ダブル、ヌル、アレイ、及びオブジェクトの基本的なJSONタイプに加えて、特殊なデータ型を使用します。
値は、文字列、整数、浮動小数点、タイムスタンプ、バイナリ、等のような
- 基本的なタイプ、
- 文書でいます、または
- 値の配列
実際、MongoDBのすべての数値は64ビットの浮動小数点数です。この問題は、Javascriptシェルが浮動小数点値を表現できないことから発生します。あなたは、浮動小数点数、倍数または小数をMongoの数値に変換する際に問題を起こすべきではありません。これらの数値データタイプをサポートBSONと呼ばれるバイナリ形式で
クリスはすでに浮動小数点型に関する情報を提供するので、私はちょうどモンゴ3.4
に3を添加し、Decimal data typeについての情報が追加されます。4では、新しい10進データ型のdecimal128形式のサポートが追加されました。 decimal128形式は、最大34桁の10進数 桁(有効桁)と指数範囲-6143〜 +6144の数字をサポートします。
十進数の の近似値しか格納しない倍精度データ型とは異なり、10進データ型は正確な値を格納します。 例えば、小数NumberDecimalは(「9.99」)二重9.99として 9.9900000000000002131628の近似値を有するであろう9.99 の正確な値...
[Mongoの3.4は小数点データ型のサポートを追加する](持ちますhttp://stackoverflow.com/a/40986686/1090562) –