, поэтому я использую mongoengine для запроса встроенных документов.
схема: проект
class _StatusFields(mongoengine.EmbeddedDocument):
start_time = mongoengine.DateTimeField()
class _Status(mongoengine.EmbeddedDocument):
start = mongoengine.EmbeddedDocumentField(
_StatusFields, default=_StatusFields()
)
complete = mongoengine.EmbeddedDocumentField(
_StatusFields, default=_StatusFields()
)
class Project(mongoengine.Document):
status = mongoengine.EmbeddedDocumentField(_Status, default=_Status),
location = mongoengine.StringField()
Как видите, я использую _Status в качестве внедренного документа в Project . Мне нужно запросить статус в проекте, который является внедренным документом.
Вот код, который я пробовал:
filter = {'status__in': ['complete']}
project_objects = Project.objects(**filter).all()
Но я получаю эту ошибку:
mongoengine.errors.InvalidQueryError: Querying the embedded document '_Status' failed, due to an invalid query value
Он работает для строк и идентификаторов объектов, но, похоже, не добавляет для встроенных документов.
Может кто-нибудь сказать мне, как правильно запрашивать встроенные документы?