可能与this question有关,但没有答案。
我有一组相关的模型,并且根模型的复杂性已大大增加。大概,我的情况是这样的
from mongoengine import *
connect("test")
class NotSoComplex(EmbeddedDocument):
name = StringField()
value = StringField()
class Complex1(EmbeddedDocument):
r1 = DictField()
r2 = EmbeddedDocumentListField(NotSoComplex)
class Complex2(EmbeddedDocument):
...
class VeryComplex(Document):
r1 = EmbeddedDocumentField(Complex1)
r2 = EmbeddedDocumentListField(Complex2)
meta = {"allow_inheritance": False, "collection": "test"} # , "indexes":["??"]}
我想基于value
筛选VeryComplex文档,这些文档存储在EmbeddedDocumentListField中。我的意思是,我想过滤在r1.r2中具有值为==“ Foo”的某些文档的文档。我不知道如何在mongoengine过滤查询中表达这一点,我想要类似[]
print(VeryComplex.objects(r1__r2__contains__name =“ Foo”))
理想情况下,如果可能的话,我还要在该字段上创建索引并建立索引。
可能与此问题有关,但没有答案。我收集了它们之间相关的模型,并且根模型的复杂性大大增加了。大概,我的情况是...
我不确定,但看来您可以使用聚合($ match和$ project)