Есть ли способ создать ObjectID из INT в MongoDB? - PullRequest
1 голос
/ 09 марта 2019

Этот вопрос изначально задавался на dba.stackexchange.com . Я пытаюсь перенести идентификаторы пользователей из MySQL в MongoDB и хочу создать идентификаторы объектов из int. Есть ли способ хранить INT внутри частей ObjectID, как случайный раздел ObjectID? Затем преобразуйте его обратно из ObjectID в int.

1 Ответ

1 голос
/ 09 марта 2019

Хорошо, есть простой подход:

import bson

def object_id_from_int(n):
    s = str(n)
    s = '0' * (24 - len(s)) + s
    return bson.ObjectId(s)

def int_from_object_id(obj):
    return int(str(obj))

n = 12345
obj = object_id_from_int(n)
n = int_from_object_id(obj)
print(repr(obj))  # ObjectId('000000000000000000012345')
print(n)  # 12345
...