2011-12-20 11 views

答えて

1

bsonライブラリはあなた/ mongomapperのためにこれを処理します。シリアル化しようとしているものがbignum/fixnumであれば、4バイトまたは8バイトの整数に収まるかどうかをチェックし、それに対応してエンコードします。 Fixnumの制限がmongoが持つ4バイト/バイトの境界と一致しないため、実際に値をチェックします。

ドライバの対応するビットが符号付き64ビット整数の範囲に収まらない整数を拒否コードのビットhere

+0

ないですか?自動変換コードは表示されません。 –

+0

正しい - bsonはそのような整数を表すことはできません。そのコードが行うことは、32ビット整数に収まるものがbsonの4バイト型を使用して格納され、8バイトに収まるものがbsonの8バイト型に格納されることを保証することです。あなたがその範囲外にいるなら、あなたは運がない。 –

+0

ああ、あなたの所有者を私のところで誤解した;) –

0

整数のデータ型は、選択したMongoのインストールによって異なります。 32ビットを選択した場合、整数は最大32ビットとなり、約20億になります。 64ビットのインストールを選択することをお勧めします。

0

MongoDBはそのデータをBSON形式(バイナリJSON)で保存します。 The specification for BSONは、32ビットと64ビットの両方の整数をサポートします。

ここでの鍵はRubyのドライバと設定です。

関連する問題