字段过滤与扩展

字段过滤

使用 select 来筛选请求返回的字段,设置需要返回的字段名,不需要返回的字段名前加 -

在 get 方法中使用

  1. // 返回特定字段
  2. let select = ["created_at", "created_by"]
  3. // 不返回特定字段
  4. let select = ["-created_at", "-created_by"]
  5. let recordId = "5c944a10d575a970a9b9****"
  6. table.get(recordId, select: select) { (record, error) in
  7. }
  1. // 返回特定字段
  2. NSArray *select = @[@"created_at", @"created_by"];
  3. // 不返回特定字段
  4. NSArray *select = @[@"-created_at", @"-created_by"];
  5. [table get:@"5ca47715d625d8370597****" select:select expand:nil completion:^(BaaSRecord * _Nullable record, NSError * _Nullable error) {
  6. }];

参数说明

参数类型必填说明
recordIdStringY记录 Id
selectArrayN指定筛选的字段
expandArrayN指定扩展的字段

返回结果

名称类型说明
recordRecord数据项实例, 关于 Record 类型查看 数据类型 章节
errorNSError错误信息,参考错误处理和错误码

在 find 方法中使用

  1. let query = Query()
  2. // 返回特定字段
  3. query.select = ["created_at", "created_by"]
  4. // 返回特定字段
  5. query.select = ["-created_at", "-created_by"]
  6. table.find(query: query) { (listResult, error) in
  7. }
  1. BaaSQuery *query = [[BaaSQuery alloc] init];
  2. // 返回特定字段
  3. query.select = @[@"created_at", @"created_by"];
  4. // 不返回特定字段
  5. query.select = @[@"-created_at", @"-created_by"];
  6. [_table findWithQuery:query completion:^(BaaSRecordList * _Nullable listResult, NSError * _Nullable error) {
  7. }];

参数说明

参数类型必填说明
queryQueryN设置筛选字段

返回结果

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

通过数组控制请求返回字段时,若数组内元素同时存在“规定返回”和“规定不返回”的字段,如:['-created_at', 'created_at']。后端服务会忽略掉此次操作,直接返回所有字段。

字段扩展

开发者可以通过 expand pointer 来查询该字段的更多信息,返回结果中的 pointer 字段会被替换为这个字段对应的完整的数据行对象。

created_by 字段是一个特殊的 pointer,开发者无需配置,默认指向了 _userpofile 表。使用 expand 方法会增加一次数据表查询,api call 计费 +1

expand 返回结果示例

注:pointer_value 为指向其他表的 pointer 类型字段

  • 不使用 expand
  1. {
  2. "created_at": 1516118400,
  3. "created_by": 1234,
  4. "id": "5a2fa9b008443e59e0e67829",
  5. "name": "小米无线耳机",
  6. "price": 199,
  7. "pointer_value": "5a2fa9xxxxxxxxxxxxxx"
  8. }
  • 使用 expand
  1. {
  2. "created_at": 1516118400,
  3. "created_by": {
  4. "avatar": "https://media.ifanrusercontent.com/tavatar/fb/cd/xxxx.jpg",
  5. "id": 62536607,
  6. "nickname": "Larry。"
  7. },
  8. "pointer_value": {
  9. "created_at": 1516118400,
  10. "name": "123",
  11. "id": "5a2fa9xxxxxxxxxxxxxx"
  12. },
  13. "id": "5a2fa9b008443e59e0e67829",
  14. "name": "小米无线耳机",
  15. "price": 199
  16. }

使用方法

在 get 方法中使用

  1. // 扩展的字段
  2. let expand = ["created_by", "pointer_value"]
  3. let recordId = "5c944a10d575a970a9b9****"
  4. table.get(recordId, expand: expand) { (record, error) in
  5. }
  1. // 扩展的字段
  2. NSArray *expand = @[@"created_by", @"pointer_value"];
  3. NSString *recordId = @"5ca09074be20d6749023****";
  4. [_table get:recordId select:nil expand:expand completion:^(BaaSRecord * _Nullable record, NSError * _Nullable error) {
  5. }];

参数说明

参数类型必填说明
recordIdStringY记录 Id
selectArrayN指定筛选的字段
expandArrayN指定扩展的字段

返回结果

名称类型说明
recordRecord数据项实例, 关于 Record 类型查看 数据类型 章节
errorNSError错误信息,参考错误处理和错误码

在 find 方法中使用

  1. let query = Query()
  2. // 扩展的字段
  3. table.expand = ["created_by", "pointer_value"]
  4. table.find(query: query) { (listResult, error) in
  5. }
  1. BaaSQuery *query = [[BaaSQuery alloc] init];
  2. // 返回特定字段
  3. query.expand = @[@"created_by", @"pointer_value"];
  4. [_table findWithQuery:query completion:^(BaaSRecordList * _Nullable listResult, NSError * _Nullable error) {
  5. }];

参数说明

参数类型必填说明
queryQueryN设置扩展字段

返回结果

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