python - 有没有办法从 MongoDB 中的 INT 创建 ObjectID?

标签 python mongodb pymongo objectid

这个问题最初是在 dba.stackexchange.com 中提出的。 。我正在尝试将用户 ID 从 MySQL 迁移到 MongoDB,并且我想从 int 创建 objectID。有没有办法将 INT 存储在 ObjectID 部分(例如 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

关于python - 有没有办法从 MongoDB 中的 INT 创建 ObjectID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55075128/

相关文章:

php - PHP无法连接到MongoDB套接字

mongodb - 生产中的MongoDB中的白名单IP地址

python - 如何在 MongoDB 中高效地存储和查询原始 JSON 流?

python - 扩展的类似 dict 的子类以支持转换和 JSON 转储而无需额外的

python - 尝试发送带有代理属性的 Azure 服务总线消息时出现 400 错误

python - Node 模块无法安装 - 上下文关联?

python - 如何从 Mongoengine/Pymongo 中的字典中自动删除键?

python - 第二次迭代文件不起作用

java - 带有 Java 客户端的键值数据库

mongodb - Pymongo:为集合更新设置 w 会覆盖默认的写关注选项