我正在使用objectify v6。我想对我的数据存储区中的所有实体进行计数。数据存储区https://cloud.google.com/datastore/docs/concepts/limits中的查找操作似乎受到限制。
在我的数据存储区中,当我这样做时,我有2000个实体
ObjectifyService.ofy().load().type(MyEntity.class).keys();
这有效,没有错误,但是当我这样做
ObjectifyService.ofy().load().type(MyEntity.class).list()
这给我一个错误,就是说查询有限制,这是否意味着我可以通过对所有键进行计数来对所有实体进行计数?
答案 0 :(得分:1)
当然,您可以使用keys()
...来计数同类中的所有实体,直到遇到相同的问题为止,即查询花费的时间太长。我不知道你能走多远,但我怀疑你会达到数百万。这种方法可能只能执行数千次。
数据存储区中没有一个很好的SELECT COUNT(*)
等效项。如果需要最新答案,则可以在分片计数器中跟踪添加和删除。如果您只需要一个近似值,则可以使用map / reduce(请参见__scatter__
属性),也可以只查看Google定期重新计算的统计信息: