1

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 はこれを 2 つの方法で実行できます。

  • クエリ 1 をメモリに実行して永続ストレージからデータをフェッチし、後でこのデータにクエリ 2 とクエリ 3 を適用して結果を得ることができます。
  • 内部で複雑な複合クエリを作成し、クエリ 1、クエリ 2 の実行を遅らせることができます。Xobj2を使用すると、この複合クエリ (クエリ 1、2、および 3 で作成) が実行され、永続ストレージからデータが取得されます。

mongoengine のコードを見て、2 番目の方法を使用していることがわかりました。ここで私の質問は、mongoengine にクエリ 1 を強制的に実行させ、クエリ 1 の実行後にメイン メモリで利用可能なデータに後続のクエリを適用できるかどうかです。

4

0 に答える 0