我知道 App Engine 的数据存储游标存在限制 我很好奇人们如何设法在此限制下检索结果集。
我的情况是我需要多次使用"or"运算符和NOT_EQUAL运行查询。 但是,由于游标为 null,因此我无法检索下一组记录。
附言 我也在使用Objectify,但没有找到任何文档是否Objectify有解决方法。
谢谢!
对于具有NOT_EQUAL
的查询,您可以从查询中删除该特定元素以使其支持游标,并在结果实体处理代码中实现等效检查(例如,如果相应的EQUAL
条件为 true,则跳过处理实体(。
若要解决or
限制,可以对每个or
元素执行多个单独的支持游标的查询,并通过以下任一方法使结果实体处理代码具有幂等性:
- 跟踪或标记已处理的实体,以确保出现在多个单独查询结果中的实体仅处理一次 即使多次处理
- 实体,也让处理代码产生相同的结果
如果需要,可以将这两种技术结合起来 - 就像您的情况一样。
当然,它们既不像没有光标限制的情况下那样方便或高效;)