【发布时间】:2011-07-23 13:04:13
【问题描述】:
我正在尝试在 GAE 上建立一个类似平台的论坛。
我必须首先提到:我对 GAE 有点陌生。
我想提取对特定帖子的所有回复。 到目前为止,结构看起来是这样的:
- Forum
--- Post
----- Reply ( = Post with Post as a parent )
回复只是以帖子为父(而不是以论坛为父)的帖子。
当我尝试拉出所有回复时,问题就开始了,返回的结果包括祖先本身。
如果没有祖先本身,我怎样才能达到同样的效果?(可能还需要提到我搜索了解决方案但没有找到)
编辑:
我的查询是这样的:
replies = db.GqlQuery("SELECT * FROM Post WHERE ANCESTOR IS :1", post)
谢谢!
更新:
嗯,我找到了办法:
db.GqlQuery("SELECT * FROM Post WHERE ANCESTOR IS :1 AND __key__ != :2", post, post.key())
只需在 where 子句中查询并排除祖先本身!
【问题讨论】:
-
从列表中删除它?
-
我想到了,但是没有祖先就没有办法得到它吗?
-
@juxstapose 这排除了知道结果桶何时计数为 0 的选项。
-
您能解释一下为什么需要将它们存储在同一个实体组中吗?鉴于应用程序的性质,我无法想象论坛/帖子/回复之间的参照完整性至关重要。仅使用
ReferenceProperty而不使用parent关系似乎更明智(除非我误解了什么) -
Shlomi:你能发布你用来获得这些结果的代码吗?那将是一个很大的帮助。另外,这是 Python 还是 Java?
标签: python google-app-engine google-cloud-datastore