Строка, или, что еще лучше, это использовать Binary, примерно в два раза меньше.
> Digest::MD5.hexdigest("ZZtop").size
=> 32
> Digest::MD5.digest("ZZtop").size
=> 16
Возможно, вам придется обойти проверку UTF8 , явно указав свой BSON:: Бинарный.
> BSON::Binary.new(Digest::MD5.digest("ZZtop"))