扫描所有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 |
逻辑关系,取值如"$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
|
参数 |
参数类型 |
描述 |
|---|---|---|
|
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列表。 |
|
returned_segment_items |
Array of returned_segment_item objects |
采样段区间列表。 |
请求示例
扫描所有kv,扫描条件为分区键的值为user2,表名为test-table-1,仓名为test-store。
POST https://test-store.{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 |
错误码
请参见错误码。