python - Mongodb 引擎和 Django 创建自定义 ObjectId

标签 python django mongodb

是否可以在使用 mongodb 引擎保存到 mongodb 的 django 模型中创建自定义 ObjectId?我试图将我想要的字符串传递到 ObjectId 类型中,例如 Flight(_id=ObjectId(myid)) ,但这给了我一个错误,指出该字符串不是有效的 id。是否可以用自定义的 id 覆盖?有什么地方可以让我了解这方面的内容或创建 ID 的规则是什么?

例子:

File "/usr/local/lib/python2.7/dist-packages/bson/objectid.py", line 172, in __validate raise InvalidId("%s is not a valid ObjectId" % oid) InvalidId: short_profile_4fcad5e8e5095f5a4f000000 is not a valid ObjectId

最佳答案

确定您可以自定义 objectId,检查 objectId documentation为此,但我不明白你需要什么。

您可以使用任何您想要的类型来代替 ObjectId。所以你可以制作 _id 字符串并插入任何 strting 值而不是 mongo ObjectId。但是您的自定义 _id 对于集合中的每个成员都必须是唯一的。如果集合在 _id 上有索引(默认情况下就是这种情况),则会强制执行此操作。

来自文档

Although _id values can be of any type, a special BSON datatype is provided for object ids. This type is a 12-byte binary value designed to have a reasonably high probability of being unique when allocated. All of the officially-supported MongoDB drivers use this type by default for _id values. Also, the Mongo database itself uses this type when assigning _id values on inserts where no _id value is present.

关于python - Mongodb 引擎和 Django 创建自定义 ObjectId,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5028665/

相关文章:

javascript - Mongoose:查找子文档并修改它的数组?

javascript - 检查数据是否更新

python - Django 中的外键

python - 获取详细的 Impyla 错误消息

django项目根目录 self 发现

python - 使用 db.ReferenceProperty 引用 Google App Engine 中的其他表

javascript - Ember.js 主键 : '_id' ?

python - 使用 Keras 的卷积神经网络中始终进行相同二元类预测的原因和可能的解决方案是什么?

python - 机器人的服务器信息命令

python - 如何在Django中为一列mysql数据创建一个非常简单的搜索 View ?