0

複数の子エンティティを持つ親がいます。親エンティティに対してクエリを実行し、その結果を一致する子エンティティの 1 つ以上のプロパティと結合することに興味があります。SQL では、次のようにします。

select p.name, p.phone, c.age from Parent p, Child c 
where p.name = 'some name' and c.name = 'John'

これは、AppEngine Datatstore の祖先パス ベースのクエリを通じて可能ですか。

平凡な質問で申し訳ありません (データストアのドキュメントを参照しましたが、これが可能かどうかは明確ではありませんでした)。

4

2 に答える 2

0

私は、Google Appengine の Datatore API の別のアプローチを使用して着陸しました。これは、このようなものを実装するためのかなり洗練されたメカニズムを提供します (または、おそらくこれはユーザーにとって明らかなことです。私の熱意を許してください..)。私はまだ単一のクエリを介してこれをフェッチすることができず、別のフェッチが必要です-しかし、それは最も効率的であるようです(パフォーマンスとコード品質に関して):

class Person (db.Model):
  name = db.StringProperty()
  age = Db.IntegerProperty()

class Child (db.Model):
  name = db.StringProperty()
  parent = db.RerenceProperty(collection_name="children")

p = new Person (name="Tom", age=21).put()
c = new Child (name="John", parent=p.key()).put() # sets a reference in child to parent

You can now do 

matchingChild = p.children.filter("name=", "John").fetch(1)
于 2013-06-02T19:25:43.150 に答える