我有一种实体类型(即〜table),具有成千上万个条目。我想获取最新的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个实体。我怎么做?
首先SortDirection.ASCENDING
获取最早的实体(即具有的最小值的实体lastestEditDate
)的方法。
你需要的是完全相反-最新的实体(即用的那些最大的值lastestEditDate
)第一。
因此,请改用SortDirection.DESCENDING
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句