有没有办法从 MongoDB 中的 INT 创建 ObjectID?
Is there a way to create an ObjectID from INT in MongoDB?
这个问题最初是在 dba.stackexchange.com 中提出的。我正在尝试将用户 ID 从 MySQL 迁移到 MongoDB,并且我想从 int 创建 objectID。有没有办法像 ObjectID 的随机部分那样将 INT 存储在 ObjectID 部分中?然后将其转换回从 ObjectID 到 int。
好的,有一个简单的方法:
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
这个问题最初是在 dba.stackexchange.com 中提出的。我正在尝试将用户 ID 从 MySQL 迁移到 MongoDB,并且我想从 int 创建 objectID。有没有办法像 ObjectID 的随机部分那样将 INT 存储在 ObjectID 部分中?然后将其转换回从 ObjectID 到 int。
好的,有一个简单的方法:
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