删除数据项

删除数据项

删除单条数据:

BaaS.TableObject#delete(recordID, options)

删除多条数据:

BaaS.TableObject#delete(query, options)

参数说明

参数类型必填说明

recordID

string

记录 ID

query

Query

Query 查询条件对象

options(类型:Object,批量删除时需要设置),属性说明:

属性类型必填默认说明

enableTrigger

boolean

true

是否触发触发器

withCount

boolean

false

是否返回 total_count

{{totalCount.withCountTips()}}

info 临时用户删除数据,请先查看数据表匿名读写权限特别说明

操作步骤

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

参数说明

tableName 和 tableID 二选一,不能同时存在

参数类型必填说明

tableID

Number

数据表的 ID

tableName

String

数据表名(SDK >= 1.2.0)

返回参数说明

无数据返回

2.指定 recordID 执行删除操作

MyTableObject.delete(recordID)

参数说明

参数类型必填说明

recordID

String

记录 ID

示例

请求示例

返回示例

then 回调中的 res 对象结构如下:

{
  "statusCode": 204,
  "data": ""
}

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

常见错误:

错误码 err.code可能的原因

404

数据行不存在

403

没有权限删除数据

批量删除数据项

SDK 1.4.0 及以上版本支持批量删除数据项。可以通过设置查询条件,将符合条件的数据进行批量删除操作。

其中:

请求示例

返回示例

then 回调中的 res 对象结构如下:

{
  "statusCode": 200,
  "data": {
    "succeed": 8, // 成功删除记录数
    "total_count": 10, // where 匹配的记录数,包括无权限操作记录
    "offset": 0,
    "limit": 10,
    "next": null // 下一次删除 url,若为 null 则表示全部删除完毕
  }
}

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

常见错误:

错误码 err.code可能的原因

404

数据行不存在

403

没有权限删除数据

批量删除时不触发触发器

SDK 1.9.1 及以上版本支持批量删除数据项时不触发触发器。该模式在批量删除数据时,不会触发设置好的触发器,会对查询条件匹配的数据全部更新,没有最多 1000 条的限制。

SDK 2.9.0 及以上版本,在 enableTrigger 为 false 时,SDK 将不会设置默认的 limit (值为 20),如果用户没有设置 limit,则为全量删除。

批量删除不触发触发器的情况下会有以下的行为:

  • 当删除命中总条目 <= 1000 时,无论 limit 设置为多少,均为同步删除,将返回删除结果,详见下方返回示例中同步执行部分。

  • 当删除命中总条目 > 1000 时,根据设置 limit 的不同,将有下方两种行为:

    • limit <= 1000 时,操作记录为同步执行

    • limit > 1000 或未设置时,则会转为异步执行并移除 limit 限制,变成操作全部

// 知晓云后台设置的触发器将不会被触发
MyTableObject.delete(query, {enableTrigger: false}).then(res => {
   console.log(res)
}, err => {
  //err 为 HError 对象
})

返回示例

同步操作时,then 回调中的 res 对象结构如下:

{
  "statusCode": 200,
  "data": {
    "succeed": 8, // 成功删除记录数
    "total_count": 10, // where 匹配的记录数,包括无权限操作记录
    "offset": 0,
    "limit": 10,
    "next": null // 下一次删除 url,若为 null 则表示全部删除完毕
  }
}

异步操作时,then 回调中的 res 对象结构如下:

{
  "statusCode": 200,
  "data": {
    "status": "ok",
    "operation_id": 1 // 可以用来查询到最终执行的结果
  }
}

info 获取异步执行结果,请查看接口文档

Last updated