祖先查询直接父母

时间:2012-07-19 14:50:58

标签: app-engine-ndb

我正在尝试使用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)

从这里开始,我想查询直接子节点的Root实体。我能做的是查询 root的所有后代:

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不支持查询(立即)父键。希望我错了。期待阐明。感谢

1 个答案:

答案 0 :(得分:4)

这不是NDB限制 - App Engine数据存储无法执行此操作。但是,您可以通过将父项的键(或其他一些唯一ID)作为属性来轻松模拟此行为。