在MongoDB中,是否有一种从INT创建ObjectID的方法?

3

这个问题最初在dba.stackexchange.com上提出。我正在尝试将用户ID从MySQL迁移到MongoDB,并且希望使用整数创建ObjectIDs。是否有一种方法可以将INT存储在ObjectID的部分中,例如ObjectID的随机部分?然后再将其从ObjectID转换回INT。

1个回答

3

好的,有一种直接的方法:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接