查询ReferenceFields与MongoEngine
问题描述:
我与MongoEngine玩弄,我只是找不到查询ReferenceFields查询ReferenceFields与MongoEngine
Class Foo(Document)
bar = ReferenceField(Bar)
...
Class Bar(Document)
value =IntField()
...
bars = Bar.objects.filter(value__lt=1000)
Django的方式:
foos = Foo.objects.filter(bar__in=bars)
MongoEngine:?
有没有办法做到这一点?
由于提前,
答
如果您使用引用您不能引用的对象字段查询。由于引用在驱动程序内部完成,并且大多数驱动程序会保存被引用的文档ID,集合名称和数据库名称(因此您只能查询引用的文档ID)。
想查询吗?使用嵌入或进行两个单独的查询。
答
这是不可能的一个查询。
试试这个:
bars = Bar.objects.filter(value__lt = 1000)
foo = Foo.objects.filter(bar__in = bars)
较多见。那个测试脚本。
https://github.com/Ankhbayar/mongoengine/blob/dev/tests/django_tests.py#L73
我想做2个单独的查询。这就是为什么我有第一个查询抓取被引用的对象,而第二个查询包含这些被引用的对象的文档 –
但我无法找到一种方法来做第二个查询。 –
@PhilippeClémen:你可以在这里发布你的文档结构吗? –