使用MongoEngine查询ReferenceFields

时间:2011-07-04 10:48:04

标签: django mongodb reference

我正在玩MongoEngine,我找不到查询ReferenceFields的方式

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:?

有没有办法实现这个目标?

提前致谢,

2 个答案:

答案 0 :(得分:9)

一个查询是不可能的。

试试这个:

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

答案 1 :(得分:0)

如果使用引用,则无法查询引用的对象字段。因为在驱动程序内部完成引用,大多数驱动程序保存引用的文档ID,集合名称和数据库名称(因此您只能查询引用的文档ID)。

想要查询?使用嵌入或进行两个单独的查询。