Я столкнулся с этим также.К сожалению, BigDecimal хранит в Mongodb как строку, поэтому он не позволит вам суммировать, сортировать и т. Д. В нем как float или int.
Кажется, что целое число - это способ хранения значения в центах, возможноиспользуя гем Money, чтобы немного его абстрагировать: https://github.com/RubyMoney/money
Mongo хранит int, используя 64 бита на большинстве современных машин, я думаю, поэтому нет большого риска необходимости большего количества даже в центах.Похоже, вы можете хранить от −9,223,372,036,854,775,808 до 9,223,372,036,854,775,807 центов, поэтому снимите два десятичных знака, чтобы получить минимальное / максимальное значение в долларах.
http://en.wikipedia.org/wiki/Integer_(computer_science)