gpt4 book ai didi

MongoDB - MongoEngine - 保存嵌入式文档不起作用 - 没有属性保存

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

我有一个嵌入式文档类 Post 和一个父类 Thread

class Thread(Document):
...
posts = ListField(EmbeddedDocumentField("Post"))

class Post(EmbeddedDocument):
attribute = StringField()
...

我想创建一个新帖子并将其添加到我的 Thread 类中的 ListField

我的代码是这样的:

post = Post()
post.attribute = "noodle"
post.save()
thread.posts.append(post)
thread.save()

但是我收到以下错误信息:

"'Post' object has no attribute 'save'"

如果我跳过 post.save(),一个空的 Post 对象将附加到我的 Thread

有什么想法吗?

最佳答案

嵌入文档不作为单独的、独立于文档实例的实例存在,即要保存嵌入文档,您必须将文档本身保存在嵌入的位置;另一种看待它的方式是,您不能在没有实际文档的情况下存储嵌入文档。

这也是为什么,虽然您可以过滤包含特定嵌入文档的文档,但您不会收到匹配的嵌入文档本身——您会收到它所属的整个文档。

thread = Thread.objects.first()  # Get the thread
post = Post()
post.attribute = "noodle"
thread.posts.append(post) # Append the post
thread.save() # The post is now stored as a part of the thread

关于MongoDB - MongoEngine - 保存嵌入式文档不起作用 - 没有属性保存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11825266/

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