Objectify / AppEngine:计算查询返回的对象数的最佳方法?

时间:2011-02-18 15:17:51

标签: google-app-engine objectify

使用 AppEngine 上的 Objectify 来计算查询返回的对象数量的最佳(即最有效)方法是什么,实际加载它们? ?我猜最好的方法是获取所有密钥并计算结果:

public int getEntityCount(Long v) {
    Objectify ofy = ObjectifyService.begin();
    Iterable<Key<MyEntity>> list = ofy.query(MyEntity.class)
            .filter("field", v).fetchKeys();
    int n = 0;
    for (Key<MyEntity> e : list)
        n++;
    return n;
}

似乎没有任何专门的方法来做到这一点。有什么想法吗?

1 个答案:

答案 0 :(得分:14)

找到它:

int n = Iterable<Key<MyEntity>> list = ofy().query(MyEntity.class)
      .filter("field", v).count();

这很简单,虽然效率很高,因为它会检索所有键。最好设计你的用户界面来处理未知数量的结果(例如谷歌提供了网页数量而不是实际数量的线索)