Можно ли распознать, если строка отформатирована как BSON ObjectID?Можно ли определить формат строки?
Для строк мы можем сделать:
"hello".is_a?(String) # => true
Это не будет работать, так как ObjectID является строка в любом случае. Но можно ли проанализировать строку, чтобы определить, отформатирован ли она как идентификатор объекта BSON?
Обычно идентификаторы объекта имеют этот формат.
52f4e2274d6f6865080c0000
Критерии форматирование stated in the docs:
ObjectId представляет собой тип BSON 12 байт, построен с использованием:
значения 4 байта, представляющие секунды с началом эпохи Unix,
3-байтовый идентификатор машины,
2-байтовый идентификатор процесса и
3-байтовый счетчик, начиная со случайного значения.
Существуют ли 12-байтовый шестнадцатеричные строки, которые * * не будут действительными идентификаторами объекта BSON? – Gareth
Вы используете мангоид? – ram
@ram да, я использую Mongoid. –