0

複数のフィルターを使用しているクエリの使用に問題があります (DB の代わりに NDB を使用しています)。

...
foo = something.query(something.a==5, something.b<8, something.c<3).order(something.b).fetch(1)
...

このエラーが発生しています:

Only one inequality filter per query is supported.

次のようなものを使用して、この問題を解決できます。

...
foo = something.query(something.a==5, something.b<8).order(something.b).fetch()
#loop through each one of those rows and add those who have foo.c<3 to some array

しかし、その解決策は本当に素晴らしいものではありません。誰かがより良いアイデアを持っていますか?

ありがとう

4

3 に答える 3

1

これが私がそれを解決した方法です:

foo = something.query(ndb.query.AND(something.a==5, something.b<8, ndb.query.OR(something.c==1, something.c==2)))
于 2012-06-19T08:25:24.730 に答える
1

query.AND または query.ORを使用する必要があります。

qry = Article.query(query.AND(Article.tags == 'python',
                              query.OR(Article.tags.IN(['ruby', 'jruby']),
                                       query.AND(Article.tags == 'php',
                                                 Article.tags != 'perl'))))
于 2012-06-18T14:42:03.993 に答える