gpt4 book ai didi

json - mongoengine中EmbeddedDocumentField和ReferenceField有什么区别

转载 作者:行者123 更新时间:2023-12-04 02:10:05 25 4
gpt4 key购买 nike

在内部,这两个字段之间有什么区别?这些字段在 mongo 中映射到什么样的模式?另外,如何将具有关系的文档添加到这些字段中?例如,如果我使用

from mongoengine import *

class User(Document):
name = StringField()

class Comment(EmbeddedDocument):
text = StringField()
tag = StringField()

class Post(Document):
title = StringField()
author = ReferenceField(User)
comments = ListField(EmbeddedDocumentField(Comment))

并打电话
>>> some_author = User.objects.get(name="ExampleUserName")
>>> post = Post.objects.get(author=some_author)
>>> post.comments
[]
>>> comment = Comment(text="cool post", tag="django")
>>> comment.save()
>>>

我应该使用 post.comments.append(comment) 还是 post.comments += comment 来附加这个文档?我最初的问题源于对我应该如何处理这个问题的困惑。

最佳答案

EmbeddedDocumentField只是父文档的路径,如 DictField并与 mongo 中的父文档一起存储在一个记录中。

保存 EmbeddedDocument只需保存父文档。

>>> some_author = User.objects.get(name="ExampleUserName")
>>> post = Post.objects.get(author=some_author)
>>> post.comments
[]
>>> comment = Comment(text="cool post", tag="django")
>>> post.comment.append(comment)
>>> post.save()

>>> post.comment
[<Comment object __unicode__>]

>>> Post.objects.get(author=some_author).comment
[<Comment object __unicode__>]

参见文档: http://docs.mongoengine.org/guide/defining-documents.html#embedded-documents .

关于json - mongoengine中EmbeddedDocumentField和ReferenceField有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17454246/

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