扫描所有kv
功能介绍
指定表,扫描表下所有kv;允许指定过滤条件。
URI
POST /v1/scan-kv
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
store_name |
否 |
String |
仓名,全域唯一,不同租户的仓名不能相同。
说明:
"-"不能出现在名字头部或尾部 |
请求参数
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
table_name |
是 |
String |
表名,仓内唯一。
|
hint_index_name |
否 |
String |
create_table时指定的索引名,默认空表示主索引。
|
limit |
否 |
Integer |
返回的文档个数,最大100个。
说明:
默认100个文档。 |
start_key |
否 |
Document |
起始主键或索引键值。
说明:
分页返回时,该值使用上次响应返回的cursor_key。 |
end_key |
否 |
Document |
终止主键或索引键值。
|
filter_expression |
否 |
condition_expression object |
过滤表达式。
说明:
|
sample_segments_count |
否 |
Integer |
对表进行采样,尽最大努力保证返回的段列表均分整张表。举例:sample_segments_count=4,返回的段列表[MinKey, KV1)、[KV1,KV2)、[KV2,KV3)和[KV3,MaxKey)。用户可以使用scan-kv对这四个分区执行并发扫描,提高遍历效率。
|
return_count_only |
否 |
Boolean |
是否只返回满足条件的KV个数;
|
returned_segment_items |
否 |
Array of returned_segment_item objects |
采样段区间列表。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
single_field_expression |
否 |
single_field_expression object |
单字段条件。 |
multi_field_expression |
否 |
multi_field_expression object |
多字段条件,多个相同优先级的单字段条件。 |
composed_expression |
否 |
composed_expression object |
组合条件, 逐层同级的子表达式嵌套。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
logic |
否 |
String |
多字段条件,多个相同优先级的单字段条件。 |
expressions |
是 |
Array of single_field_expression objects |
多个相同逻辑操作的单字段条件。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
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 |
逻辑关系,取值如"$and", "$or", "$nor"。 |
expressions |
是 |
Array of expression objects |
多个相同优先级且相同逻辑的单字段或多字段条件。 |
参数 |
是否必选 |
参数类型 |
描述 |
---|---|---|---|
single_field_expression |
否 |
single_field_expression object |
单字段条件。 |
multi_field_expression |
否 |
single_field_expression object |
多字段条件,多个相同优先级的单字段条件。 |
composed_expression |
否 |
composed_expression object |
组合条件, 逐层同级的子表达式嵌套。 |
响应参数
状态码: 200
参数 |
参数类型 |
描述 |
---|---|---|
returned_count |
Long |
返回的文档数量,为0不表示结束。
说明:
如果filtered_count超过500仍无匹配,则返回0。 |
filtered_count |
Integer |
被过滤掉的文档数量。 |
cursor_key |
Document |
下次请求时的start_key,该值为空时,表示指定范围或者指定filter条件所有kv已经返回。 |
returned_kv_items |
Array of returned_kv_item objects |
返回的kv列表。 |
请求示例
扫描所有kv,扫描条件为分区键的值为user2
POST https://{endpoint}/v1/scan-kv { "table_name" : "test-table-1", "filter_expression" : { "single_field_expr" : { "field" : "owner", "func" : "$eq", "value" : { "value" : "user-2" } } } }
响应示例
状态码: 200
表示扫描所有kv请求成功
{ "returned_count" : 1, "filtered_count" : 0, "returned_kv_items" : [ { "kv_doc" : { "owner" : "user-2", "filename" : "test-file-2", "otherKey" : "otherValue" } } ] }
状态码
状态码 |
描述 |
---|---|
200 |
表示扫描所有kv请求成功 |
400 |
Bad Request |
错误码
请参见错误码。