你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

Container.GetItemQueryIterator 方法

定义

重载

GetItemQueryIterator<T>(String, String, QueryRequestOptions)

此方法使用 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。

GetItemQueryIterator<T>(FeedRange, QueryDefinition, String, QueryRequestOptions)

此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition

GetItemQueryIterator<T>(QueryDefinition, String, QueryRequestOptions)

此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition

GetItemQueryIterator<T>(String, String, QueryRequestOptions)

Source:
Container.cs

此方法使用 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。

public abstract Microsoft.Azure.Cosmos.FeedIterator<T> GetItemQueryIterator<T> (string queryText = default, string continuationToken = default, Microsoft.Azure.Cosmos.QueryRequestOptions requestOptions = default);
abstract member GetItemQueryIterator : string * string * Microsoft.Azure.Cosmos.QueryRequestOptions -> Microsoft.Azure.Cosmos.FeedIterator<'T>
Public MustOverride Function GetItemQueryIterator(Of T) (Optional queryText As String = Nothing, Optional continuationToken As String = Nothing, Optional requestOptions As QueryRequestOptions = Nothing) As FeedIterator(Of T)

类型参数

T

参数

queryText
String

Cosmos SQL 查询文本。

continuationToken
String

(可选) Azure Cosmos DB 服务中的延续令牌。

requestOptions
QueryRequestOptions

(可选) 项查询请求的选项。

返回

用于遍历项的迭代器。

示例

  1. 创建查询以获取成本超过 9000 的所有 ToDoActivity
public class ToDoActivity{
    public string id {get; set;}
    public string status {get; set;}
    public int cost {get; set;}
}

using (FeedIterator<ToDoActivity> feedIterator = this.Container.GetItemQueryIterator<ToDoActivity>(
    "select * from ToDos t where t.cost > 9000",
    null,
    new QueryRequestOptions() { PartitionKey = new PartitionKey("Error")}))
{
    while (feedIterator.HasMoreResults)
    {
        foreach(var item in await feedIterator.ReadNextAsync())
        {
            Console.WriteLine(item.cost);
        }
    }
}
  1. 创建 FeedIterator 以获取所有 ToDoActivity。
public class ToDoActivity{
    public string id {get; set;}
    public string status {get; set;}
    public int cost {get; set;}
}

using (FeedIterator<ToDoActivity> feedIterator = this.Container.GetItemQueryIterator<ToDoActivity>(
    null,
    null,
    new QueryRequestOptions() { PartitionKey = new PartitionKey("Error")}))
{
    while (feedIterator.HasMoreResults)
    {
        foreach(var item in await feedIterator.ReadNextAsync())
        {
            Console.WriteLine(item.cost); 
        }
    }
}

适用于

GetItemQueryIterator<T>(FeedRange, QueryDefinition, String, QueryRequestOptions)

Source:
Container.cs

此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition

public abstract Microsoft.Azure.Cosmos.FeedIterator<T> GetItemQueryIterator<T> (Microsoft.Azure.Cosmos.FeedRange feedRange, Microsoft.Azure.Cosmos.QueryDefinition queryDefinition, string continuationToken = default, Microsoft.Azure.Cosmos.QueryRequestOptions requestOptions = default);
abstract member GetItemQueryIterator : Microsoft.Azure.Cosmos.FeedRange * Microsoft.Azure.Cosmos.QueryDefinition * string * Microsoft.Azure.Cosmos.QueryRequestOptions -> Microsoft.Azure.Cosmos.FeedIterator<'T>
Public MustOverride Function GetItemQueryIterator(Of T) (feedRange As FeedRange, queryDefinition As QueryDefinition, Optional continuationToken As String = Nothing, Optional requestOptions As QueryRequestOptions = Nothing) As FeedIterator(Of T)

类型参数

T

参数

feedRange
FeedRange

GetFeedRangesAsync(CancellationToken)获取的 FeedRange。

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<ToDoActivity> feedIterator = this.Container.GetItemQueryIterator<ToDoActivity>(
    feedRanges[0],
    queryDefinition,
    null,
    new QueryRequestOptions() { }))
{
    while (feedIterator.HasMoreResults)
    {
        foreach(var item in await feedIterator.ReadNextAsync())
        {
            Console.WriteLine(item.cost); 
        }
    }
}

注解

查询作为流仅支持单分区查询

适用于

GetItemQueryIterator<T>(QueryDefinition, String, QueryRequestOptions)

Source:
Container.cs

此方法使用具有参数化值的 SQL 语句为 Azure Cosmos 数据库中容器下的项创建查询。 它返回 FeedIterator。 有关使用参数化值准备 SQL 语句的详细信息,请参阅 QueryDefinition

public abstract Microsoft.Azure.Cosmos.FeedIterator<T> GetItemQueryIterator<T> (Microsoft.Azure.Cosmos.QueryDefinition queryDefinition, string continuationToken = default, Microsoft.Azure.Cosmos.QueryRequestOptions requestOptions = default);
abstract member GetItemQueryIterator : Microsoft.Azure.Cosmos.QueryDefinition * string * Microsoft.Azure.Cosmos.QueryRequestOptions -> Microsoft.Azure.Cosmos.FeedIterator<'T>
Public MustOverride Function GetItemQueryIterator(Of T) (queryDefinition As QueryDefinition, Optional continuationToken As String = Nothing, Optional requestOptions As QueryRequestOptions = Nothing) As FeedIterator(Of T)

类型参数

T

参数

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<ToDoActivity> feedIterator = this.Container.GetItemQueryIterator<ToDoActivity>(
    queryDefinition,
    null,
    new QueryRequestOptions() { PartitionKey = new PartitionKey("Error")}))
{
    while (feedIterator.HasMoreResults)
    {
        foreach(var item in await feedIterator.ReadNextAsync())
        {
            Console.WriteLine(item.cost); 
        }
    }
}

适用于