Как я могу получить один конкретный c встроенный документ, например, по идентификатору с mongoengine?
Это мои модели:
class Project(Document):
project_name = StringField(unique=True, required=True)
literature = ListField(EmbeddedDocumentField(Literature))
class Literature(EmbeddedDocument):
id = ObjectIdField(required=True, default=ObjectId,
unique=True, primary_key=True, sparse=True)
title = StringField()
, и я хочу получить спецификацию c Объект литературы, например, с идентификатором «2».
Я пробовал это:
literature = Project.objects(project_name=project_name).get(
literature__id=2).literature
, но это дает мне все объекты литературы, а не только тот, который имеет идентификатор «2»
Я также пробовал что-то вроде этого:
literature = Project.objects.get(project_name=project_name).literature.filter(
literature__id=2)
, но это вызывает ошибку AttributeError: 'BaseList' object has no attribute 'filter'
так что есть ли способ получить только этот c встроенный документ (литература с ID = 2)? Не знаю, что еще я могу сделать
Ура