2

リストをフィルターとして使用してGQLで選択するにはどうすればよいですか。

クラスがあれば

public class Obj{

    @Persistent
    private Long name;

}

名前がリストにないすべてのObjを取得するにはどうすればよいですか?

4

1 に答える 1

1

すべてのフィルターをチェーン化することで結果を得ることができます。

SELECT * FROM User where email != 'xxx@gmail.com' and email != 'yyy@gmail.com' and email != 'zzz@gmail.com'

Pythonコード

q = User.all()
for i in ilist:
    q = q.filter("email = ", i)

ただし、この種のクエリにはいくつかの制限があることを知っておく必要があるかもしれません。

注:INおよび!=演算子は、バックグラウンドで複数のクエリを使用します。たとえば、IN演算子は、リスト内のすべてのアイテムに対して個別の基になるデータストアクエリを実行します。返されるエンティティは、基礎となるすべてのデータストアクエリの外積の結果であり、重複排除されます。1つのGQLクエリに対して最大30のデータストアクエリを使用できます。

于 2011-07-05T18:10:29.113 に答える