你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Container.GetItemQueryStreamIterator 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
GetItemQueryStreamIterator(QueryDefinition, String, QueryRequestOptions) |
此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition。 |
GetItemQueryStreamIterator(String, String, QueryRequestOptions) |
此方法使用 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 |
GetItemQueryStreamIterator(FeedRange, QueryDefinition, String, QueryRequestOptions) |
此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition。 |
GetItemQueryStreamIterator(QueryDefinition, String, QueryRequestOptions)
此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition。
public abstract Microsoft.Azure.Cosmos.FeedIterator GetItemQueryStreamIterator (Microsoft.Azure.Cosmos.QueryDefinition queryDefinition, string continuationToken = default, Microsoft.Azure.Cosmos.QueryRequestOptions requestOptions = default);
abstract member GetItemQueryStreamIterator : Microsoft.Azure.Cosmos.QueryDefinition * string * Microsoft.Azure.Cosmos.QueryRequestOptions -> Microsoft.Azure.Cosmos.FeedIterator
Public MustOverride Function GetItemQueryStreamIterator (queryDefinition As QueryDefinition, Optional continuationToken As String = Nothing, Optional requestOptions As QueryRequestOptions = Nothing) As FeedIterator
参数
- queryDefinition
- QueryDefinition
Cosmos SQL 查询定义。
- continuationToken
- String
(可选) Azure Cosmos DB 服务中的延续令牌。
- requestOptions
- QueryRequestOptions
(可选) 项查询请求的选项。
返回
用于遍历项的迭代器。
示例
创建查询以获取指定分区的成本超过 9000 的所有 ToDoActivity
public class ToDoActivity{
public string id {get; set;}
public string status {get; set;}
public int cost {get; set;}
}
QueryDefinition queryDefinition = new QueryDefinition("select * from ToDos t where t.cost > @expensive")
.WithParameter("@expensive", 9000);
using (FeedIterator feedIterator = this.Container.GetItemQueryStreamIterator(
queryDefinition,
null,
new QueryRequestOptions() { PartitionKey = new PartitionKey("Error")}))
{
while (feedIterator.HasMoreResults)
{
using (ResponseMessage response = await feedIterator.ReadNextAsync())
{
using (StreamReader sr = new StreamReader(response.Content))
using (JsonTextReader jtr = new JsonTextReader(sr))
{
JObject result = JObject.Load(jtr);
}
}
}
}
注解
查询作为流仅支持单分区查询
适用于
GetItemQueryStreamIterator(String, String, QueryRequestOptions)
此方法使用 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。
public abstract Microsoft.Azure.Cosmos.FeedIterator GetItemQueryStreamIterator (string queryText = default, string continuationToken = default, Microsoft.Azure.Cosmos.QueryRequestOptions requestOptions = default);
abstract member GetItemQueryStreamIterator : string * string * Microsoft.Azure.Cosmos.QueryRequestOptions -> Microsoft.Azure.Cosmos.FeedIterator
Public MustOverride Function GetItemQueryStreamIterator (Optional queryText As String = Nothing, Optional continuationToken As String = Nothing, Optional requestOptions As QueryRequestOptions = Nothing) As FeedIterator
参数
- queryText
- String
Cosmos SQL 查询文本。
- continuationToken
- String
(可选) Azure Cosmos DB 服务中的延续令牌。
- requestOptions
- QueryRequestOptions
(可选) 项查询请求的选项。
返回
用于遍历项的迭代器。
示例
- 创建查询以获取指定分区的成本超过 9000 的所有 ToDoActivity
public class ToDoActivity{
public string id {get; set;}
public string status {get; set;}
public int cost {get; set;}
}
using (FeedIterator feedIterator = this.Container.GetItemQueryStreamIterator(
"select * from ToDos t where t.cost > 9000",
null,
new QueryRequestOptions() { PartitionKey = new PartitionKey("Error")}))
{
while (feedIterator.HasMoreResults)
{
using (ResponseMessage response = await feedIterator.ReadNextAsync())
{
using (StreamReader sr = new StreamReader(response.Content))
using (JsonTextReader jtr = new JsonTextReader(sr))
{
JObject result = JObject.Load(jtr);
}
}
}
}
- 创建 FeedIterator 以获取所有 ToDoActivity。
public class ToDoActivity{
public string id {get; set;}
public string status {get; set;}
public int cost {get; set;}
}
using (FeedIterator feedIterator = this.Container.GetItemQueryStreamIterator(
null,
null,
new QueryRequestOptions() { PartitionKey = new PartitionKey("Error")}))
{
while (feedIterator.HasMoreResults)
{
using (ResponseMessage response = await feedIterator.ReadNextAsync())
{
using (StreamReader sr = new StreamReader(response.Content))
using (JsonTextReader jtr = new JsonTextReader(sr))
{
JObject result = JObject.Load(jtr);
}
}
}
}
注解
查询作为流仅支持单分区查询
适用于
GetItemQueryStreamIterator(FeedRange, QueryDefinition, String, QueryRequestOptions)
此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition。
public abstract Microsoft.Azure.Cosmos.FeedIterator GetItemQueryStreamIterator (Microsoft.Azure.Cosmos.FeedRange feedRange, Microsoft.Azure.Cosmos.QueryDefinition queryDefinition, string continuationToken, Microsoft.Azure.Cosmos.QueryRequestOptions requestOptions = default);
abstract member GetItemQueryStreamIterator : Microsoft.Azure.Cosmos.FeedRange * Microsoft.Azure.Cosmos.QueryDefinition * string * Microsoft.Azure.Cosmos.QueryRequestOptions -> Microsoft.Azure.Cosmos.FeedIterator
Public MustOverride Function GetItemQueryStreamIterator (feedRange As FeedRange, queryDefinition As QueryDefinition, continuationToken As String, Optional requestOptions As QueryRequestOptions = Nothing) As FeedIterator
参数
- feedRange
- FeedRange
从 获取的 FeedRange GetFeedRangesAsync(CancellationToken)
- queryDefinition
- QueryDefinition
Cosmos SQL 查询定义。
- continuationToken
- String
(可选) Azure Cosmos DB 服务中的延续令牌。
- requestOptions
- QueryRequestOptions
(可选) 项查询请求的选项。
返回
用于遍历项的迭代器。
示例
创建查询以获取指定分区的成本超过 9000 的所有 ToDoActivity
public class ToDoActivity{
public string id {get; set;}
public string status {get; set;}
public int cost {get; set;}
}
IReadOnlyList<FeedRange> feedRanges = await this.Container.GetFeedRangesAsync();
// Distribute feedRanges across multiple compute units and pass each one to a different iterator
QueryDefinition queryDefinition = new QueryDefinition("select * from ToDos t where t.cost > @expensive")
.WithParameter("@expensive", 9000);
using (FeedIterator feedIterator = this.Container.GetItemQueryStreamIterator(
feedRanges[0],
queryDefinition,
null,
new QueryRequestOptions() { }))
{
while (feedIterator.HasMoreResults)
{
using (ResponseMessage response = await feedIterator.ReadNextAsync())
{
using (StreamReader sr = new StreamReader(response.Content))
using (JsonTextReader jtr = new JsonTextReader(sr))
{
JObject result = JObject.Load(jtr);
}
}
}
}
注解
查询作为流仅支持单分区查询