Лучшие практики для эффективного хранения хэшей md5 в MongoDB - PullRequest
2 голосов
/ 24 января 2012

Предположим, у нас есть хэш md5:

С рубином:

>Digest::MD5.hexdigest("ZZtop")
=> "d3e5c7c22df12b70e882f593432a3bdd"

Возможные типы полей:

: type => String

: type => Hash

Что мне выбрать?

Ответы [ 3 ]

7 голосов
/ 24 января 2012

Используйте строку.Хэш в BSON относится к набору пар ключ-значение.

4 голосов
/ 24 января 2012

В MongoDB хэш не означает криптографический отпечаток (как в MD5 или SHA-1). Это означает хэш, как в хэш-таблице (структура данных, которая позволяет хранить пары ключ-значение).

Вы должны использовать строку для хранения отпечатка пальца MD5.

0 голосов
/ 11 декабря 2012

Строка, или, что еще лучше, это использовать Binary, примерно в два раза меньше.

> Digest::MD5.hexdigest("ZZtop").size
=> 32
> Digest::MD5.digest("ZZtop").size
=> 16

Возможно, вам придется обойти проверку UTF8 , явно указав свой BSON:: Бинарный.

> BSON::Binary.new(Digest::MD5.digest("ZZtop"))
...