2011-07-05 4 views
2

List as filterを使用してGQLで選択を行う方法を教えてください。GQLフィルタでのリストの使用

私が持っている場合は、クラス

public class Obj{ 

    @Persistent 
    private Long name; 

} 

私はすべてのObjの名前にリストされないことが取得できますか?

+0

http://code.google.com/appengine/docs/python/datastore/gqlreference.html – lucemia

+0

@lucemiaありがとうございますが、私はそれを読んで、このチュートリアルは私を助けません。 : – Victor

+0

OK、btw、 "リストをフィルタとして使用する"とはどういう意味ですか?ListPropertyでエンティティをフィルタリングしたいのですか?リストを条件として使用したいですか? – lucemia

答えて

1

すべてのフィルタを連鎖させて結果を得ることができます。

SELECT * FROM User where email != '[email protected]' and email != '[email protected]' and email != '[email protected]' 

Pythonのコード

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

しかし、あなたは、クエリのこの種のいくつかの制限があります知っている必要があります。

注:INおよび!=演算子は、背後で複数のクエリを使用します。たとえば、IN演算子は、リスト内のすべての項目に対して別々の基礎となるデータストアクエリを実行します。返されるエンティティは、基礎となるすべてのデータストアクエリのクロス積の結果であり、重複排除されます。単一のGQLクエリに対して最大30のデータストアクエリが許可されます。

+0

リストのような脅威について私はすでにこのソリューションを使用していますが、値のリストを使用してハウツーフィルタを知りたい – Victor

+0

"in"条件でリスト内のobjsを取得できますが、私はobjを直接リストに入れない方法があるとは思わない。 – lucemia