gpt4 book ai didi

python - 使用 python 在 mongodb 中使用自定义 ID 类型

转载 作者:可可西里 更新时间:2023-11-01 09:58:11 28 4
gpt4 key购买 nike

我使用 mongodb 作为我在 Django 1.5 应用程序中的一些信息的存储后端。

mongodb 集合中存储的每个文档都有一个_id 字段,它是由多个字符串组成的dict。现在,当我尝试检索此信息时,我使用 mongoengine 将文档映射到模型类:

from mongoengine import *

class MyClass(Document):
_id = DictField()

在我做的 View 中:

documents = MyClass.objects
print documents

当我调用 View 时,我得到一个TypeError

TypeError at /viewname/
id must be an instance of (str, unicode, ObjectId), not <type 'dict'>

更糟糕的是,当我使用保存例程时

obj = MyClass({"tag":"sometag"})
obj.save()

我得到了完全相同的错误,但是在数据库集合中创建了带有 _id={"tag":"sometag"} 的文档。

对可能发生的事情有什么想法吗?可能与正在发生的一样 here

注意:我尝试使用 EmbeddedDocumentField 但结果是一样的(错误使用我的嵌入式类名而不是 'dict')

最佳答案

我找到了:

我缺少 primary_key 参数。如果我在模型中更改它:

class MyClass(Document):
id = DictField(primary_key=True)

它在读取和写入这两个操作时开始工作。

这是官方文档:Mongoengine

关于python - 使用 python 在 mongodb 中使用自定义 ID 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17221164/

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