RubyMongDBドライバーの上にあるMongoidを使用しています。私のマップの放出はを与えparseInt(num)
、リデュースの戻りはまたを返しますがparseInt(num)
、最終的な結果はまだフロートです。
それはMongoDBに特有ですか?代わりに整数にする方法はありますか?
このparseInt
関数は、正式には文字列をパラメータとして受け取ります。この文字列は整数であるかのように解析されるため、最初の非数値文字以降のすべてが無視されます。浮動小数点数を指定すると、解析される前に文字列に変換されます。
関数は整数ではなく、を返しparseInt
ます。JavaScriptの唯一の数値データ型です。整数と浮動小数点数の区別はありません。Number
Number
したがってparseInt
、小数は削除されますが、データ型は変更されません。したがって、Mongoidは、結果を浮動小数点数として扱うか整数として扱うかを知りません。この例でわかるように、結果を整数に変換するのはあなたの責任です。
NumberLong
64ビット整数を表すタイプに出くわしました。reduce関数から戻るnew NumberLong(num)
と、Mongoidはそれを整数型として扱う場合があります。
これをMongoDBシェルで機能させるには、MongoDB1.6が必要であることに注意してください。Mongoidがそれをサポートしているかどうかはまだわかりません。