2012-07-19 71 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)作为属性来轻松地模拟此行为。