【发布时间】:2019-10-10 16:36:24
【问题描述】:
所以我使用 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 用作 项目 中的嵌入文档。我需要查询项目中的status,即嵌入文档。
所以这是我尝试过的代码:
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
它适用于字符串和 objectIds,但它似乎不适用于嵌入文档。
谁能告诉我查询嵌入式文档的正确方法是什么?
【问题讨论】:
标签: python mongodb pymongo mongoengine