首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >NDB:如何进行部分祖先匹配?

NDB:如何进行部分祖先匹配?
EN

Stack Overflow用户
提问于 2014-02-13 20:55:07
回答 1查看 148关注 0票数 1

上下文:

我正在开发一款web应用程序。如果我不使用祖先,那么尝试在立即插入ndb.Model的新值之后更新元素不会获取新值。然而,使用祖先,我得到了一致的结果。

但是,我想创建一个项目的层次结构。

示例:

代码语言:javascript
运行
复制
class Office(ndb.Expando):
  name = ndb.StringProperty()

考虑到办公室:

代码语言:javascript
运行
复制
HQ = Office(key=ndb.Key('Office', '0'), name='HQ')
BR1 = Office(key=ndb.Key('Office', '0','Office', 'BR1'), name='Branch 1')
BR2 = Office(key=ndb.Key('Office', '0', 'Office', 'BR2'), name='Branch 2')
BR1S1 = Office(key=ndb.Key('Office', 'S1'), name='Branch 1 Sector 1')
BR1S2 = Office(key=ndb.Key('Office', 'S2'), name='Branch 1 Sector 2')
BR2S1 = Office(key=ndb.Key('Office', 'S1'), name='Branch 2, Sector 1')
BR2S1 = Office(key=ndb.Key('Office', 'S2'), name='Branch 2, Sector 2')

我不能得到很强的一致性,因为它们都是根祖先。

考虑到办公室:

代码语言:javascript
运行
复制
HQ = Office(key=ndb.Key('Office', '0'), name='HQ')
BR1 = Office(key=ndb.Key('Office', '0','Office', 'BR1'), name='Branch 1')
BR2 = Office(key=ndb.Key('Office', '0', 'Office', 'BR2'), name='Branch 2')
BR1S1 = Office(key=ndb.Key('Office', '0', 'Office', 'BR1','Office', 'S1'), name='Branch 1 Sector 1')
BR1S2 = Office(key=ndb.Key('Office', '0', 'Office', 'BR1','Office', 'S2'), name='Branch 1 Sector 2')
BR2S1 = Office(key=ndb.Key('Office', '0', 'Office', 'BR2','Office', 'S1'), name='Branch 2, Sector 1')
BR2S1 = Office(key=ndb.Key('Office', '0', 'Office', 'BR2','Office', 'S2'), name='Branch 2, Sector 2')

我也不能从一个查询中获得它们,因为祖先参数只能精确匹配。

我想查询祖先的ndb.Key('Office', '0', *),但还没有想好怎么做。

有可能吗?

EN

回答 1

Stack Overflow用户

发布于 2014-02-13 21:12:23

请参阅Ancestor Querys

代码语言:javascript
运行
复制
key = ndb.Key(BlogPost, 12345)
qry = Comment.query(ancestor=key)

所以你的例子是

代码语言:javascript
运行
复制
key = ndb.Key(Office, 0)
qry = Office.query(ancestor=key)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21754859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档