gpt4 book ai didi

python - 将 ObjectId 插入 mongodb

转载 作者:行者123 更新时间:2023-11-28 21:15:34 26 4
gpt4 key购买 nike

我正在开发一个 mongo 数据库,出于某种原因,该数据库将用户 ID 存储为 ObjectId

为了测试一些功能,我希望能够填充一个测试数据库——例如,如下所示:

import mongomock
from bson import ObjectId

client = mongomock.MongoClient("mongodb://localhost:27017/test-database")
database = client.get_default_database()
database.test_collection.insert({'_id': ObjectId('my_user_id'), 'value': 'my_value'})

但是,运行这个返回

InvalidId: 'my_user_id' is not a valid ObjectId, it must be a 12-byte input or a 24-character hex string

我怎样才能正确地将一个 ObjectId 对象插入到我的测试数据库中,以便我可以使用它来测试查询

database.test_collection.find_one({'user': ObjectId('my_user_id')})

(当我查询真实数据库时它工作正常)?

最佳答案

如 InvalidId 消息所述,您需要使用 12 字节的“二进制”输入或 24 字符的十六进制字符串。

因此,如果您想使用“my_user_id”之类的东西,您需要使用二进制或十六进制表示,同时缺少两个字符,以 12 字节或 24 十六进制表示。

例如,如果您的用户 ID 是“my_user_id00”,那么您可以使用以下任何一个:

database.test_collection.find_one({'user': ObjectId(b'my_user_id00')})
database.test_collection.find_one({'user': ObjectId('6d795f757365725f69643030')})

您可以在 mongoDB API docs 上找到更多信息.

关于python - 将 ObjectId 插入 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58920928/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com