2013-12-12 55 views
1

我正在學習Google Cloud Datastore GQL grammar。我專注於比較條款,特別是「有ANCESTOR」和「HES DESCENDANT」。比方說,我們是在以下情形:谷歌雲數據存儲中有ANCESTOR和HAS DESCENDANT子句

人:

  • 艾米
  • 弗雷德,父=艾米
  • 勞拉,父=艾米
  • 保羅
  • 艾格尼絲...

如果我使用下一個GQL查詢,我會得到相同的輸出嗎? (是否等價?)

SELECT * FROM Person WHERE key_name='Fred' HAS ANCESTOR KEY('Person', 'Amy') 

SELECT * FROM Person WHERE KEY('Person', 'Amy') HAS DESCENDANT key_name='Fred' 

在這種情況下,我不明白HAS DESCENDANT子句的存在。

在此先感謝!

回答

1

這兩個GQL查詢應產生相同的結果:

SELECT * FROM Person WHERE __key__ HAS ANCESTOR KEY('Person', 'Amy') 
SELECT * FROM Person WHERE KEY('Person', 'Amy') HAS DESCENDANT __key__