0

这个 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 匹配的所有子项的查询。换句话说,它将从上面返回键 XAii 和 XBii,仅此而已。我正在使用低级查询机制,到目前为止我所拥有的是:

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

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

4

1 回答 1

0

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

于 2012-06-14T23:17:14.757 回答