更新时间:2024-12-09 GMT+08:00
分享

更新单个kv

功能介绍

指定表,指定主键,指定更新文档的部分内容,如果是自描述文档,指定字段名;如果是二进制文档,指定偏移位置和长度;允许指定条件执行。

URI

POST /v1/update-kv

表1 Query参数

参数

是否必选

参数类型

描述

store_name

String

仓名,全域唯一,不同租户的仓名不能相同。

  • 格式:${prefix}-${region-code}-${account-id},其中prefix为自定义前缀,region-code为kvs集群所在的区域代码,account-id为用户的账户id

  • 取值字符限制:[a-z0-9-]+

  • 长度:[16,52]

说明:

"-"不能出现在名字头部或尾部

请求参数

表2 请求Body参数

参数

是否必选

参数类型

描述

table_name

String

表名,仓内唯一。

  • 长度:[3, 63]

  • 取值字符限制:[a-z0-9_-]+

primary_key

Document

用户自定义的主键名及值。

说明:

内容字段:主键字段名和值,组合索引多个元素。

condition_expression

condition_expression object

条件表达式,参见conditional小节,禁止携带主键字段。

update_fields

update_fields object

对kv_doc有效。

表3 condition_expression

参数

是否必选

参数类型

描述

single_field_expression

single_field_expression object

单字段条件。

multi_field_expression

multi_field_expression object

多字段条件,多个相同优先级的单字段条件。

composed_expression

composed_expression object

组合条件, 逐层同级的子表达式嵌套。

表4 multi_field_expression

参数

是否必选

参数类型

描述

logic

String

多字段条件,多个相同优先级的单字段条件。

expressions

Array of single_field_expression objects

多个相同逻辑操作的单字段条件。

表5 single_field_expression

参数

是否必选

参数类型

描述

field

String

条件字段。

func

String

条件函数,取值如"$gt", $lt","$gte", $lte" "$eq", "$ne", "$prefix", "$exists"。

value

Document

value和value_array二选一。

  • value条件值,适用于除"$in", "$nin"外的func。

  • 字段名无意义,可以传空,也可以传字段名。

  • $exists值为true/false。

说明:

$prefix操作只适用于string和binary类型。

value_array

Array of strings

"value"和"value_array"二选一。

  • "value_array" 条件值列表, 值用于"$in", "$nin"。

表6 composed_expression

参数

是否必选

参数类型

描述

logic

String

逻辑关系,取值如"$and", "$or", "$nor"。

expressions

Array of expression objects

多个相同优先级且相同逻辑的单字段或多字段条件。

表7 expression

参数

是否必选

参数类型

描述

single_field_expression

single_field_expression object

单字段条件。

multi_field_expression

single_field_expression object

多字段条件,多个相同优先级的单字段条件。

composed_expression

composed_expression object

组合条件, 逐层同级的子表达式嵌套。

表8 update_fields

参数

是否必选

参数类型

描述

set

Document

新增字段或覆盖1个或多个字段的值。

说明:

禁止修改sortkey的字段。

add

Document

对1个或多个字段做加法运算,并更新为运算后的值。

rmv

Array of strings

删除1个或多个字段。

  • 数组元素为待删除字段名。

insert

Document

插入元素到数组中

说明:

非数组返回失败。

delete

Document

从数组中删除某个元素

说明:

值不存在则返回失败。

响应参数

状态码: 400

表9 响应Body参数

参数

参数类型

描述

error_code

String

请求返回的错误码。

error_msg

String

请求返回的错误信息。

请求示例

更新单个kv,设置表名为test-table-1,设置更新的kv分区键值为user1,排序键为test-file-1,设置更新的鑫数据为非结构化数据。

POST https://{endpoint}/v1/update-kv

{
  "table_name" : "test-table-1",
  "primary_key" : {
    "owner" : "user-1",
    "filename" : "test-file-1"
  },
  "update_fields" : {
    "set" : {
      "updateKey" : "updateValue"
    }
  }
}

响应示例

状态码

状态码

描述

200

表示更新单个kv请求成功

400

BadRequest

错误码

请参见错误码

相关文档