【问题标题】:Mongoengine: insert ListField item into a specific embedded DocumentMongoengine:将 ListField 项插入特定的嵌入文档
【发布时间】:2020-04-25 00:02:53
【问题描述】:

我有一个文档和一个嵌入式文档,我想在我的嵌入式文档的 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))

所以我想进入特定类的特定人员,并在 listField charakterEntries 中插入一个新的字符条目。

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

虽然我可以这样做:

 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】:

    所以我终于找到了解决办法:

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

    这会将新的字符条目礼貌地放在 ListField 的末尾。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-26
      • 2013-02-15
      • 1970-01-01
      相关资源
      最近更新 更多