Key + Ancestor上的低级AppEngine查询

时间:2012-06-14 22:38:08

标签: google-app-engine ancestor low-level-api

这个AppEngine任务似乎应该是微不足道的,但我还没有完成它。我在GrandParent / Parent / Child关系中有一些数据:

EntityName  Key
----------- -------
GrandParent W
GrandParent X
Parent      W.A
Parent      X.A
Parent      X.B
Child       W.A.i
Child       X.A.i
Child       X.A.ii    <=== matches X.*.ii
Child       X.A.iii
Child       X.B.i
Child       X.B.ii    <=== matches X.*.ii

我正在尝试构建一个匹配所有具有键X。*。ii的子项的查询。换句话说,它将从上面返回键X.A.ii和X.B.ii,而不是别的。我正在使用低级查询机制,到目前为止我所拥有的是:

Entity gpX = new Entity("GrandParent","X");
Query q = new Query("Child");
q.setAncestor(gpX.getKey());

返回五个孩子。如果i / ii / iii属性是属性而不是密钥,这将是微不足道的,但它是一个关键,我不清楚如何指定'ii'是搜索条件。

1 个答案:

答案 0 :(得分:0)

如果没有单独的财产,就没有办法做到这一点。 App Engine数据存储区中的所有过滤器必须是相等或范围测试(相当于字符串前缀测试);不可能按照您使用单个过滤器描述的方式进行过滤。