分页和排序

分页

使用 limitoffset 来控制分页数据:

  • limit 指定该请求返回的结果个数
  • offset 偏移量,指定该请求返回的结果的起始位置

默认 limit20, offset0,我们也可以手动指定 limitoffset 来控制。例如,每页展示 100 条数据,需要获取第 5 页的数据,将 limit 设置为 100offset 设置为 400 即可。limit 最大可设置为 1000。

{% tabs swift1=”Swift”, oc1=”Objective-C” %} {% content “swift1” %}

  1. let query = Query()
  2. query.limit = 10
  3. query.offset = 0
  4. table.find(query: query) { (listResult, error) in
  5. }

{% content “oc1” %}

  1. BaaSQuery *query = [[BaaSQuery alloc] init];
  2. query.offset = 10;
  3. query.limit = 0;
  4. [table findWithQuery:query completion:^(BaaSRecordList * _Nullable listResult, NSError * _Nullable error) {
  5. }];

{% endtabs %}

参数说明

参数 类型 必填 说明
query Query N 查询条件,详见数据表 - 查询

返回结果

名称 类型 说明
listResult RecordList 结果列表,详见 数据类型 章节
error NSError 错误信息,参考错误处理和错误码

info 通过 RecordList 类型的 nextprevious 属性来判断下一页或上一页是否有数据。若 nextnull,表示当前为最后一页;若 previousnull,表示当前为第一页。

排序

使用 orderBy 来控制使用升序或降序获取数据列表,设置需要排序的字段名,升序为字段名,降序在字段名前加 ‘-‘。

{% tabs swift2=”Swift”, oc2=”Objective-C” %} {% content “swift2” %}

  1. let query = Query()
  2. // 升序
  3. query.orderBy = ['created_at']
  4. // 降序
  5. query.orderBy = ['-created_at']
  6. // 多重排序
  7. query.orderBy = ['created_at', 'created_by']
  8. table.find(query: query) { (listResult, error) in
  9. }

{% content “oc2” %}

  1. BaaSQuery *query = [[BaaSQuery alloc] init];
  2. // 升序
  3. query.orderBy = @[@"created_at"];
  4. // 降序
  5. query.orderBy = @[@"-created_at"];
  6. // 多重排序
  7. query.orderBy = @[@"created_at", @"created_by"];
  8. [table findWithQuery:query completion:^(BaaSRecordList * _Nullable listResult, NSError * _Nullable error) {
  9. }];

{% endtabs %}

参数说明

参数 类型 必填 说明
query Query N 查询条件,详见数据表 - 查询

返回结果

名称 类型 说明
listResult RecordList 详见 数据类型 章节
error NSError 错误信息,参考错误处理和错误码

获取记录总数

在获取一组记录时,返回的结果默认不包含记录总量(total_count),需要返回记录总量可以通过 Query 的 returnTotalCount(Bool) 设置。

{% tabs swift3=”Swift”, oc3=”Objective-C” %} {% content “swift3” %}

  1. let query = Query()
  2. query.returnTotalCount = true // 结果包含 total_count 字段
  3. table.find(query: query) { (listResult, error) in
  4. }

{% content “oc3” %}

  1. BaaSQuery *query = [[BaaSQuery alloc] init];
  2. query.returnTotalCount = YES; // 结果包含 total_count 字段
  3. [table findWithQuery:query completion:^(BaaSRecordList * _Nullable listResult, NSError * _Nullable error) {
  4. }];

{% endtabs %}