【问题标题】:objectify count all entities in datastore对象化统计数据存储中的所有实体
【发布时间】:2018-12-11 20:59:31
【问题描述】:

我正在使用 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() 

这给了我一个错误,说查询有限制,这是否意味着我可以通过计算所有键来获得所有实体的计数?

【问题讨论】:

    标签: google-cloud-platform google-cloud-datastore objectify


    【解决方案1】:

    当然,您可以使用 keys()... 计算您同类中的所有实体,直到遇到同样的问题,即您的查询耗时过长。我不知道你能走多远,但我怀疑你会达到数百万。这种方法可能只适用于数千人。

    数据存储区中没有 SELECT COUNT(*) 的良好等效项。如果您需要最新的答案,您可以在分片计数器中跟踪添加和删除。如果您只需要一个近似值,您可以使用 map/reduce(请参阅__scatter__ 属性),或者您可以只查看 Google 定期重新计算的统计信息:

    https://cloud.google.com/datastore/docs/concepts/stats

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-23
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 2023-03-13
      相关资源
      最近更新 更多