У меня была такая же проблема.причина в том, что MongoID хранит значения BigDecimal в виде строки в коллекциях MongoDB.и сортировка строк отвратительна.
irb(main):001:0> ["1" , "200", "8", "12"].sort
=> ["1", "12", "200", "8"]
вы можете изменить это на float, это решит, но float не является правильным форматом данных для обработки валюты.поэтому для сортировки используйте отдельное поле с плавающей точкой, пока MongoID не исправит ошибку.