Freigeben über


Container.GetItemQueryIterator Methode

Definition

Überlädt

GetItemQueryIterator<T>(String, String, QueryRequestOptions)

Diese Methode erstellt mithilfe einer SQL-Anweisung eine Abfrage für Elemente unter einem Container in einer Azure Cosmos-Datenbank. Es gibt einen FeedIterator zurück.

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

Diese Methode erstellt eine Abfrage für Elemente unter einem Container in einer Azure Cosmos-Datenbank mithilfe einer SQL-Anweisung mit parametrisierten Werten. Es gibt einen FeedIterator zurück. Weitere Informationen zum Vorbereiten von SQL-Anweisungen mit parametrisierten Werten finden Sie unter QueryDefinition.

GetItemQueryIterator<T>(QueryDefinition, String, QueryRequestOptions)

Diese Methode erstellt eine Abfrage für Elemente unter einem Container in einer Azure Cosmos-Datenbank mithilfe einer SQL-Anweisung mit parametrisierten Werten. Es gibt einen FeedIterator zurück. Weitere Informationen zum Vorbereiten von SQL-Anweisungen mit parametrisierten Werten finden Sie unter QueryDefinition.

GetItemQueryIterator<T>(String, String, QueryRequestOptions)

Quelle:
Container.cs

Diese Methode erstellt mithilfe einer SQL-Anweisung eine Abfrage für Elemente unter einem Container in einer Azure Cosmos-Datenbank. Es gibt einen FeedIterator zurück.

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)

Typparameter

T

Parameter

queryText
String

Der Cosmos SQL-Abfragetext.

continuationToken
String

(Optional) Das Fortsetzungstoken im Azure Cosmos DB-Dienst.

requestOptions
QueryRequestOptions

(Optional) Die Optionen für die Elementabfrageanforderung.

Gibt zurück

Ein Iterator zum Durchlaufen der Elemente.

Beispiele

  1. Erstellen sie eine Abfrage, um alle ToDoActivity-Funktionen abzurufen, die kosten größer als 9.000
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. Erstellen Sie einen FeedIterator, um die gesamte ToDoActivity abzurufen.
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); 
        }
    }
}

Gilt für:

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

Quelle:
Container.cs

Diese Methode erstellt eine Abfrage für Elemente unter einem Container in einer Azure Cosmos-Datenbank mithilfe einer SQL-Anweisung mit parametrisierten Werten. Es gibt einen FeedIterator zurück. Weitere Informationen zum Vorbereiten von SQL-Anweisungen mit parametrisierten Werten finden Sie unter 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)

Typparameter

T

Parameter

feedRange
FeedRange

Ein FeedRange, der von abgerufen wird GetFeedRangesAsync(CancellationToken).

queryDefinition
QueryDefinition

Die Cosmos SQL-Abfragedefinition.

continuationToken
String

(Optional) Das Fortsetzungstoken im Azure Cosmos DB-Dienst.

requestOptions
QueryRequestOptions

(Optional) Die Optionen für die Elementabfrageanforderung.

Gibt zurück

Ein Iterator zum Durchlaufen der Elemente.

Beispiele

Erstellen Sie eine Abfrage, um alle ToDoActivity abzurufen, die kosten größer als 9.000 für die angegebene Partition sind.

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); 
        }
    }
}

Hinweise

Abfrage als Stream unterstützt nur Abfragen von einzelnen Partitionen

Gilt für:

GetItemQueryIterator<T>(QueryDefinition, String, QueryRequestOptions)

Quelle:
Container.cs

Diese Methode erstellt eine Abfrage für Elemente unter einem Container in einer Azure Cosmos-Datenbank mithilfe einer SQL-Anweisung mit parametrisierten Werten. Es gibt einen FeedIterator zurück. Weitere Informationen zum Vorbereiten von SQL-Anweisungen mit parametrisierten Werten finden Sie unter 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)

Typparameter

T

Parameter

queryDefinition
QueryDefinition

Die Cosmos SQL-Abfragedefinition.

continuationToken
String

(Optional) Das Fortsetzungstoken im Azure Cosmos DB-Dienst.

requestOptions
QueryRequestOptions

(Optional) Die Optionen für die Elementabfrageanforderung.

Gibt zurück

Ein Iterator zum Durchlaufen der Elemente.

Beispiele

Erstellen sie eine Abfrage, um alle ToDoActivity-Funktionen abzurufen, die kosten größer als 9.000

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); 
        }
    }
}

Gilt für: