在mongoengine中控制查询执行

时间:2015-01-14 11:29:03

标签: python mongodb orm mongoengine flask-mongoengine

我们可以控制mongoengine中复合查询集的执行吗?

例如:

from models import X
Xobjs = X.objects.filter(field1='xyz')  # query 1
Xobjs1 = Xobjs.filter(field2='pqr')     # query 2
Xobjs2 = Xobjs1.filter(field3='abc')    # query 3

现在我想使用 Xobj2 的结果。

ORM可以通过两种方式实现:

  • 它可以通过在内存中执行查询1来从持久存储中获取数据,然后对该数据应用查询2和查询3以获得结果。
  • 它可以在底层创建复杂的复合查询并延迟执行查询1,查询2,当我使用 Xobj2 时,它执行此复合查询(由查询1,2和3)并从持久存储中获取数据。

我看到了mongoengine的代码,发现它使用了第二种方法。现在我的问题是,如果我们可以强制mongoengine执行查询1,然后在执行查询1后对主内存中可用的数据应用后续查询?

0 个答案:

没有答案