如何在GAE数据存储区(HRD)中查询实体的直接子节点?

时间:2012-04-04 12:26:03

标签: google-app-engine google-cloud-datastore

我们可以通过X.all()。ancestor(y)得到y的所有孩子(包括间接的),但我想只接收那些y的直接孩子。

有什么办法吗?

2 个答案:

答案 0 :(得分:0)

尝试:

X.all().filter("parent = ", y)

答案 1 :(得分:0)

使用数据存储区Query(),您可以使用方法setAncestor()设置其祖先,但不保证祖先是直接父级。

您可以采取哪些措施来确保仅通过比较操作来获取直接子项。

if( directChildEntity.getKey().getParent().equals( directParentEntity.getKey() ) )
        {
        // directChildEntity is a direct child of directParentEntity
        }

诀窍是使用数据存储区Key's getParent()方法,因为它可以调解密钥之间的一步层次结构。