MatchAllQuery可以匹配所有行,常用于查詢表中數據總行數,或者隨機返回幾條數據。
前提條件
- 已初始化OTSClient。具體操作,請參見初始化OTSClient。
- 已創建數據表并寫入數據。
- 已在數據表上創建多元索引。具體操作,請參見創建多元索引。
參數
參數 | 描述 |
query | 設置查詢類型為MatchAllQuery。 |
table_name | 數據表名稱。 |
index_name | 多元索引名稱。 |
limit | 本次查詢需要返回的最大數量。 如果只為了獲取行數,無需獲取具體數據,可以設置limit=0,即不返回任意一行數據。 |
get_total_count | 是否返回匹配的總行數,默認為false,表示不返回。 返回匹配的總行數會影響查詢性能。 |
columns_to_get | 是否返回所有列。
|
示例
以下示例用于查詢表中數據的總行數。
5.2.1及之后版本
使用5.2.1及之后的SDK版本時,默認的返回結果為SearchResponse對象,請求示例如下:
query=MatchAllQuery() all_rows=[] next_token=None first_page=True while first_page or next_token: search_response=client.search(table_name, index_name, SearchQuery(query,next_token=next_token,limit=100,get_total_count=True), columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED)) all_rows.extend(search_response.rows) first_page=False for row in all_rows: print(row) print('Totalrows:', len(all_rows))
如果需要返回Tuple類型結果,您可以使用如下請求示例實現。
query=MatchAllQuery() all_rows=[] next_token=None first_page=True while first_page or next_token: rows, next_token, total_count, is_all_succeed, agg_results, group_by_results =client.search(table_name, index_name, SearchQuery(query,next_token=next_token,limit=100,get_total_count=True), columns_to_get=ColumnsToGet(['k','t','g','ka','la'],ColumnReturnType.SPECIFIED)).v1_response() all_rows.extend(rows) first_page=False for row in all_rows: print(row) print('Totalrows:', len(all_rows))
5.2.1之前版本
使用5.2.1之前的SDK版本時,默認的返回結果為Tuple類型,請求示例如下:
query=MatchAllQuery() all_rows=[] next_token=None first_page=True while first_page or next_token: rows, next_token, total_count, is_all_succeed = client.search(table_name, index_name, SearchQuery(query, next_token=next_token, limit=100, get_total_count=True), columns_to_get=ColumnsToGet(['k', 't', 'g', 'ka', 'la'], ColumnReturnType.SPECIFIED)) all_rows.extend(rows) first_page=False for row in all_rows: print(row) print('Total rows:', len(all_rows))
文檔內容是否對您有幫助?