更新数据项

操作步骤

1.通过 tableNametableId 实例化一个 Table 对象,操作该对象即相当于操作对应的数据表,这里推荐用 tableName

示例代码

// 通过 tableId 创建数据表实例 
let table = Table(Id: 1236**)

// 通过 tablename 创建数据表实例
let table = Table(name: "Book")
// 通过 tableId 创建数据表实例
BaaSTable *table = [[BaaSTable alloc] initWithId:1236**];

// 通过 tablename 创建数据表实例
BaaSTable *table = [[BaaSTable alloc] initWithName:@"Book"];

参数说明

tableName 和 tableId 二选一

名称 类型 说明
tableId Int 数据表的 Id
tableName String 数据表名

2.通过数据行 id(以下用 recordId 参数名表示) 设置指定数据行

let record = table.getWithoutData(recordId: "5c944a10d575a970a9b91c12")
BaaSRecord *record = [table getWithoutDataWithRecordId:@"5c944a10d575a970a9b91c12"];

3.为记录项赋值

有两种类型的赋值操作:

a.一次性赋值:

record.set(record: ["name": "bookname", "color": "red", "price": 19])
[record setWithRecord:@{@"name": @"bookname", @"color": @"red", @"price": @10}];

参数说明

名称 类型 说明
record Dictionary 记录信息,key 为字段名称

b.逐个赋值:

record.set(key: "color", value: "red")
record.set(key: "price", value: 10)
[record setWithKey:@"color" value:@"red"];
[record setWithKey:@"price" value:@10];

对同一字段进行多次 set 操作,后面的数据会覆盖掉前面的数据

c. unset 操作

将某个字段的值清空

book.unset(key: "color")
[record unsetWithKey:@"color"];

4.将数据更新保存到服务器

record.update { (success, error) in

}
[record update:^(BOOL success, NSError * _Nullable error) {

}];

返回结果

名称 类型 说明
success Bool 是否新增数据成功
error NSError 错误信息

success 更新数据成功后,记录对象 record 的数据将被更新

err 对象结构请参考错误处理和错误码

通过上面的四个步骤,即完成了一条记录的更新,具体操作阅读以下内容。

更新普通数据

请参考 新增数据项 的添加普通数据

更新日期时间 Date 类型的数据

请参考 新增数据项 的添加日期时间 Date 类型的数据

更新 file 类型数据

请参考 新增数据项 的添加 file 类型数据

更新 object 类型数据

对象内的属性名只能包含字母、数字和下划线,必须以字母开头,比如 {$ifanr.x: 123}{知晓云: "test"} 是错误的

更新array 类型数据

添加 array 类型数据的方法与添加其他类型数据的方法基本一致。区别在于,array 类型数据是将一个的数组赋值给某个字段。

array 类型数据中的元素类型,要与预先在知晓云平台设定的字段类型一致。否则创建的数据将不包含该 array 类型的字段。

更新 pointer 类型数据

请参考 新增数据项 的添加 pointer 类型数据

计数器原子性更新

对数字类型的字段进行原子性增减操作。当请求同时对一个数据进行增减时,原子性使得冲突和覆盖导致的数据不正确的情况不会出现。

假如 Book 表有一个价钱字段 price,通过原子性增加价钱:

book.incrementBy(key: "price", value: 1)
[book incrementByKey:@"price" value:@1];

参数说明

参数 类型 必填 说明
key String 在数据表中的类型必须是 Number 或 Integer
value Double 与 key 的类型保持一致

数组原子性更新

待插入的数组 加到原数组末尾

假设 Book 表中有一个字段 recommender,表示推荐者,类型是数组,可以有多个推荐者,现增加一个作者:

book.append(key: "recommender", value: ["xiaoming"])
[book appendWithKey:@"recommender" value:@[@"xiaoming"]];

参数说明

参数 类型 必填 说明
key String 在数据表中的类型必须是 Array
value Array -

待插入的数组 中不包含在原数组的数据加到原数组末尾

book.uAppend(key: @"author", value: ["xiaoming", "xiaohong"])
[book uAppengWithKey:"author" value:@[@"xiaoming", @"xiaohogn"]];

参数说明

参数 类型 必填 说明
key String 在数据表中的类型必须是 Array
value Array -

从原数组中删除指定的值

book.remove(key: "author", value: ["xiaoming", "xiaohong"])
[book remove:@"author" value:@[@"xiaoming", @"xiaohong"]];

参数说明

参数 类型 必填 说明
key String 在数据表中的类型必须是 Array
value Array 如果元素类型是 geojson、object、file,则只能是 length 为 1 的 Array

results matching ""

    powered by

    No results matching ""