Mongoengine: Получить информацию о внедренном документе по выбранному идентификатору - PullRequest
0 голосов
/ 25 апреля 2020

Я пытаюсь получить все атрибуты одного внедренного документа по идентификатору.

Это в основном мой код:

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

class Personlist(Document):
    listName= StringField(unique=true)
    persons = ListField(EmbeddedDocumentField(Personn))

, и теперь я хочу, чтобы человек например: oid: "123ab c".

Я уже пробовал это:

person= Personlist.objects.get(person__oid="123abc").person

, но это дает мне всех людей из списка людей, в котором находится выбранный человек. Но я хочу получить только этого человека.

Если я попробую что-то вроде этого:

person= Person.objects(oid="123abc").get 

или:

person= Person.get(oid="123abc")

Я получу AttributeError, который говорит, что type object "Person" has no attribute "get" or "objects".

Есть ли способ получить только один EmbeddedDocument к oid и не каждому человеку Personlist?

...