2012-07-19 128 views
0

我試圖使用App Engine NDB遞歸結構模式:祖先查詢即時父

class Root(ndb.Model): 
    pass 

class Node(ndb.Model): 
    #Node can have either a Root, or another Node as parent 
    pass 

root_key = Key(Root, 1) 
node_a = Key(Root, 1, Node, 2) 
node_b = Key(Root, 1, Node, 3) 
node_a_a = Key(Root, 1, Node, 2, Node, 4) 

從這裏,我要查詢的根實體立即孩子。我所能做的就是查詢根的所有後代:

Node.query(ancestor=root_key) # returns node_a, node_b, and node_a_a 

我希望做的是:

Node.query(parent=root_key) # returns node_a, node_b 

但似乎通過查詢(即時)父鍵不被ndb api支持。希望我錯了。期待澄清。謝謝

回答

4

這不是NDB限制 - App Engine數據存儲不能這樣做。但是,您可以通過將父級的密鑰(或其他唯一ID)作爲屬性來輕鬆地模擬此行爲。