我正在尝试使用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不支持查询(立即)父键。希望我错了。期待阐明。感谢
答案 0 :(得分:4)
这不是NDB限制 - App Engine数据存储无法执行此操作。但是,您可以通过将父项的键(或其他一些唯一ID)作为属性来轻松模拟此行为。