Библиотека bson обрабатывает это для вас / mongomapper.Если вещь, которую вы пытаетесь сериализовать, является bignum / fixnum, она проверяет, поместится ли она в 4-байтовое или 8-байтовое целое число, и соответственно кодирует его.Он на самом деле проверяет значение, так как пределы Fixnum не соответствуют 4-байтовым / байтовым границам, которые есть у mongo.
Соответствующий бит драйвера здесь