需要使用不等操作来管理查询结果(游标)的想法

时间:2017-02-08 15:45:02

标签: google-app-engine cursor objectify datastore

我知道有一个limitation with App Engine's datastore cursor我很好奇人们如何设法在此限制下检索结果集。

我的方案是我需要多次使用“或”运算符和NOT_EQUAL运行查询。但是,由于游标为null,我无法检索下一组记录。

P.S。我也在使用Objectify,但是没有找到Objectify是否有解决方法的文件。

谢谢!

1 个答案:

答案 0 :(得分:1)

对于NOT_EQUAL的查询,您可以从查询中删除该特定元素以使其具有游标功能,并在结果实体处理代码中实现等效检查(即跳过处理实体,如果相应的{{1}例如,条件为真。

要解决EQUAL限制,您可以为每个or元素执行多个单独的支持游标的查询,并通过以下任一方式使结果实体处理代码具有幂等性:

  • 跟踪或标记已处理的实体,以确保出现在多个单独查询结果中的实体仅处理一次
  • 即使多次处理实体,处理代码也会产生相同的结果

如果需要,可以将两种技术结合起来 - 就像你的情况一样。

当然,如果没有游标限制,它们既不方便也不高效;)