如果我想按一个参数过滤,我该怎么办?
我认为最好使用getCloudBackend().listByProperty()
方法而不是getCloudBackend().list()
此方法使用示例:
getCloudBackend().listByProperty("yourKindName", "yourPropertyName", Op.EQ,
yourPropertyValueObject, null, 1, Scope.PAST, yourHandler);
如果我想按所有者过滤?
您可以使用上面列出的方法。只需输入您的所有者财产名称而不是yourPropertyName
如果我想放置多个过滤器?
要对一个属性使用多个过滤器,我listByPropertyAnd()
在类中创建了方法CloudBackendAsync
:
public void listByPropertyAnd(String kindName, String propertyName,
CloudQuery.Order order, int limit, Scope scope,
CloudCallbackHandler<List<CloudEntity>> handler, F... filters) {
CloudQuery cq = new CloudQuery(kindName);
cq.setFilter(F.and(filters));
cq.setSort(propertyName, order);
cq.setLimit(limit);
cq.setScope(scope);
this.list(cq, handler);
}
此方法使用示例:
getCloudBackend().listByPropertyAnd("yourKindName", "yourKindName", Order.DESC,
1000, Scope.FUTURE_AND_PAST, yourHandler,
F.gt("yourKindName", yourFirstValue),
F.lt("yourKindName", yourSecondValue), F.eq("date", mToday));
在这种情况下,您可以为一个属性使用任意数量的过滤器,但它应该符合 数据存储索引规则。此外,阅读此Java Datastore Filters和此Mobile Backend Starter - API Guide可能会很有用