我想让我的mongodb进入一个领域:
class ZhinengStats(Document):
zhineng_id = ObjectIdField(db_field="_id", primary_key=True, required=True, help_text="job id")
但有效的ObjectId必须是'str'类型的12字节输入或24个字符的十六进制字符串,因此如果我这样做:
ZhinengStats.objects(zhineng_id="programmer").first()
我会出错的。我觉得吃杂烩是个好办法:
hash("programmer") # 7354308922443094682
但正如你所见,杂凑似乎不好。
那么,如何获取有效的对象id?
更新:
主要的问题是因为这是一个中文字段,所以类似这样的:ObjectId('兼职'.decode("utf-8"))
不能工作,所以我如何使它支持utf-8?
为什么必须从字符串生成ObjectId?如果您只是想要mongodb文档的唯一id,您可以像这样自动生成一个
生成的ObjectId将基于机器的硬件签名和当前时间
Python mongodb documentation已经为您准备好了示例:
相关问题 更多 >
编程相关推荐