有没有一种方法可以从MongoDB中的INT创建ObjectID?

时间:2019-03-09 07:40:26

标签: python mongodb pymongo objectid

该问题最初是在dba.stackexchange.com中提出的。我正在尝试将用户ID从MySQL迁移到MongoDB,我想从一个整数创建objectID。有没有一种方法可以在ObjectID部分(例如ObjectID的随机部分)中存储INT?然后将其从ObjectID转换回int。

1 个答案:

答案 0 :(得分:1)

好的,有一个简单的方法:

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