Mongoengine:将ListField项目插入到一个特定的嵌入式文档中。

问题描述 投票:0回答:1

我有一个Document和一个嵌入的文档,我想在嵌入文档的ListField中插入一个值。我在stackoverflow上找不到关于这个问题的任何东西,所以也许有人可以帮助我。

这基本上是我的模型类。

class Person(EmbeddedDocument):
    oid = ObjectIdField(required=True, default=ObjectId,
                        unique=True, primary_key=True, sparse=True)
    personName = StringField()
    charakterEntries= ListField()

class schoolClass(Document):
    className= StringField(unique=true)
    persons = ListField(EmbeddedDocumentField(Personn))

所以我想进入一个特定的类的特定的人 并插入一个新的charakter条目到listField charakterEntries。

假设我有一个 className "chemistry" 并想插入新的 charakter entry "polite"ListField "charakterEntries" 的人 oid="abc123".

我以为我可以做这样的事情。

 person= Person.objects(oid=id).get()
    person.charakterEntries.append("polite")
    person.save()

但是我得到了以下的错误。AttributeError: type object 'Person' has no attribute 'objects'

有人知道如何解决这个问题吗?我在stackoverflow上试了很多东西,但都不能使它工作。所以请不要马上关闭这个问题。

谢谢你:-)

python mongodb flask mongoengine
1个回答
0
投票

所以我终于找到了一个解决方案。

 schoolClass.objects.filter(persons__oid="abc123").update_one(
        push__persons__S__charakterEntries="polite")

这样就可以把新的charakter条目礼貌地放在ListField的最后。

© www.soinside.com 2019 - 2024. All rights reserved.