Oli*_*ler 4 google-app-engine objectify
我想有效地查询索引字段以检索索引字段不为空(存在于索引中)的所有记录.要查询的字段包含Ref<T>另一个实体,如果这是相关的.
我能做的是不等式搜索,比如.filter/.filterKey("fieldname >=", "a"),a是我想要抓取的最小的ASCII.
但这有效吗?或者我可以以某种方式进行相等搜索,它会返回索引中存在的所有记录吗?
-
这就是我的数据的样子:我想过滤"overlay"列有一个键的所有记录,并省略那些没有设置字段的记录.我想尽可能使用相等过滤器,所以我不需要复合索引(因为我同时在其他字段上过滤).

-
我可以用它来测试 != null
.filter("user >", "\uFFFD");
Run Code Online (Sandbox Code Playgroud)
这是为了测试 == null
.filter("user <", "\uFFFD");
Run Code Online (Sandbox Code Playgroud)
我猜这不是它应该做的方式.有没有办法用平等而不是不平等来解决这个问题?
如果要查询索引字段具有空值的实体:
ofy().load().type(Thing.class).filter("fieldname !=", null)
Run Code Online (Sandbox Code Playgroud)
但是,这与相等过滤器不同.在封面下,GAE将!=视为一对过滤器(>和<),这带来了不等式过滤器的局限性.
如果需要"not null"上的相等过滤器,请在实体中创建一个合成索引字段,该字段使用@OnSave方法填充.您可以对'true'值使用部分索引来限制索引此额外数据的成本(即@Index(IfTrue.class))
| 归档时间: |
|
| 查看次数: |
2431 次 |
| 最近记录: |