我有一个实体类(即〜表),有数千个条目。我想获取最新的25个条目。我怎么做?以下逻辑无效:它返回最旧的25。
Filter timestampFilter = new FilterPredicate("lastestEditDate", FilterOperator.GREATER_THAN_OR_EQUAL, 0);
Query query = new Query(CatMeow.class.getSimpleName()).setFilter(timestampFilter);
FetchOptions options = FetchOptions.Builder.withLimit(25);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
QueryResultList<Entity> entities = datastore.prepare(query).asQueryResultList(options);
我相信我需要完全改变我的逻辑。考虑过这个问题后,我认为时间戳过滤器并不相关。所以我改为以下逻辑,这也不起作用:它没有返回最新的实体。
Query query = new Query(CatMeow.class.getSimpleName()).
addSort("lastestEditDate", SortDirection.ASCENDING);
FetchOptions options = FetchOptions.Builder.withLimit(25);
DatastoreService datastore = DatastoreServiceFactory.getDatastoreService();
QueryResultList<Entity> entities = datastore.prepare(query).asQueryResultList(options);
再次,在成千上万的实体中,我需要抓住最新添加的25个实体。我该怎么做?
答案 0 :(得分:0)
SortDirection.ASCENDING
表示首先获取最早的实体(即lastestEditDate
值最小的实体)。
你想要的恰恰相反 - 最新的实体(即{strong>最大值为lastestEditDate
)的实体。
因此,请使用SortDirection.DESCENDING
。