更新单个kv
功能介绍
指定表,指定主键,指定更新文档的部分内容,如果是自描述文档,指定字段名;如果是二进制文档,指定偏移位置和长度;允许指定条件执行。
URI
POST /v1/update-kv
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| store_name | 否 | String | 仓名,全域唯一,不同租户的仓名不能相同。
说明: "-"不能出现在名字头部或尾部 |
请求参数
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| table_name | 是 | String | 表名,仓内唯一。
|
| primary_key | 是 | Document | 用户自定义的主键名及值。 说明: 内容字段:主键字段名和值,组合索引多个元素。 |
| condition_expression | 否 | condition_expression object | 条件表达式,参见conditional小节,禁止携带主键字段。
|
| update_fields | 否 | update_fields object | 对kv_doc有效。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| single_field_expression | 否 | single_field_expression object | 单字段条件。 |
| multi_field_expression | 否 | multi_field_expression object | 多字段条件,多个相同优先级的单字段条件。 |
| composed_expression | 否 | composed_expression object | 组合条件, 逐层同级的子表达式嵌套。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| logic | 否 | String | 逻辑关系,取值如"$and", "$or", "$nor"。 |
| expressions | 是 | Array of expression objects | 多个相同优先级且相同逻辑的单字段或多字段条件。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| single_field_expression | 否 | single_field_expression object | 单字段条件。 |
| multi_field_expression | 否 | multi_field_expression object | 多字段条件,多个相同优先级的单字段条件。 |
| composed_expression | 否 | composed_expression object | 组合条件, 逐层同级的子表达式嵌套。 |
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| field | 是 | String | 条件字段。 |
| func | 是 | String | 条件函数,取值如"$gt", $lt","$gte", $lte" "$eq", "$ne", "$prefix", "$exists"。 |
| value | 否 | Document | value和value_array二选一。
说明: $prefix操作只适用于string和binary类型。 |
| value_array | 否 | Array of strings | "value"和"value_array"二选一。
|
| 参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
| logic | 否 | String | 多字段条件,多个相同优先级的单字段条件。 |
| expressions | 是 | Array of single_field_expression objects | 多个相同逻辑操作的单字段条件。 |
响应参数
状态码:200
表示更新单个kv请求成功
状态码:400
| 参数 | 参数类型 | 描述 |
|---|---|---|
| error_code | String | 请求返回的错误码。 |
| error_msg | String | 请求返回的错误信息。 |
请求示例
更新单个kv,设置表名为test-table-1,仓名为test-store,设置更新的kv分区键值为user1,排序键为test-file-1,将updateKey字段的值更新为updateValue。
POST https://test-store.{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 |
错误码
请参见错误码。