mongoid中的货币表示

VP.*_*VP. 5 ruby-on-rails mongodb mongoid

我应该如何使用MongoID的Money?我应该将其配置为BigDecimal吗?在铁轨水平?对于ActiveRecord,我们有一些名为Money的东西,但AFAIK它只支持AR

Bri*_*ong 8

我也碰到了这个.不幸的是,BigDecimal在Mongodb中存储为一个字符串,所以它不会让你像float或int那样对它进行求和,排序等.

整数似乎是以美分存储价值的方式,可能使用Money gem来抽象它:https://github.com/RubyMoney/money

Mongo在大多数现代机器上使用64位存储int我认为所以即使在美分中也不需要更大的风险.看起来您可以存储-9,223,372,036,854,775,808和9,223,372,036,854,775,807美分,所以取小数点后两位以获得美元的最小值/最大值.

http://en.wikipedia.org/wiki/Integer_(computer_science)


dm.*_*dm. 3

MongoDB 以各种BSON数据类型(int、long int、double)存储数字。我建议您将钱存储为美分(如果是美国货币)并使用 long int 数据类型。