2016-12-13 4 views
1

I持っているGoogleのクラウドデータストアに次のデータモデル:祖先キーのリストを使用してエンティティに対してクエリを実行する方法

Parent: 
    - name 

Child: 
    - ancestor: Parent 
    - name 

私はParentキーのリストを持っています。 Parentキーのリストから降順のすべてのChildエンティティをクエリするにはどうすればよいですか?

私は文が働く

SELECT * FROM Child WHERE __key__ HAS ANCESTOR Key(Parent, 'abc'), Key(Parent, 'dfe') 

SELECT * FROM Child WHERE __key__ HAS ANCESTOR [Key(Parent, 'abc'), Key(Parent, 'dfe')] 

とどちらの選択を試してみました。

SELECT * FROM Child WHERE __key__ HAS ANCESTOR Key(Parent, 'abc') 
SELECT * FROM Child WHERE __key__ HAS ANCESTOR Key(Parent, 'dfe') 

し、結果をマージ:あなたは2つのクエリとしてこれを実行する必要があると思いますので、

答えて

1

Cloud Datastoreのクエリは、多くても1人の祖先でオン動作することができます。

それとも、すべてChildのエンティティをフェッチして逃げることができれば、あなたが実行できます。

SELECT * FROM Child 
+0

残念ながら、私はそれらをフィルタリングする必要があるので、私は、すべてのフェッチと離れて取得することはできません。これは、祖先ごとに1つのクエリを意味する最適な解決策です。 :( – Kookz

関連する問題