QueryIterator class
Reprezentuje obiekt QueryIterator, implementację kanału informacyjnego lub odpowiedzi na zapytanie, która umożliwia przechodzenie i iterowanie odpowiedzi w usłudze bazy danych Azure Cosmos DB.
Metody
| fetch |
Pobierz wszystkie strony dla zapytania i zwróć pojedynczą pozycję FeedResponse. Przykład
|
| fetch |
Pobierz następną partię ze źródła danych. Może to spowodować pobranie większej liczby stron z zaplecza w zależności od ustawień i typu zapytania. Zapytania agregujące zazwyczaj pobierają wszystkie strony zaplecza przed zwróceniem pierwszej partii odpowiedzi. Przykład
|
| get |
Pobiera iterator asynchroniczny, który przyniesie wyniki do ukończenia. UWAGA: AsyncIterators są bardzo nową funkcją i może być konieczne użycie polifilów/itp. w celu ich użycia w kodzie. Jeśli używasz języka TypeScript, możesz użyć następującego wielowypełniania, o ile jest on przeznaczony dla wersji ES6 lub nowszej i działa w węźle 6 lub nowszym.
Przykład Iterowanie we wszystkich bazach danych
|
| has |
Ustal, czy nadal istnieją zasoby do przetworzenia na podstawie wartości tokenu kontynuacji lub elementów pozostałych w bieżącej partii w usłudze QueryIterator. |
| reset() | Zresetuj element QueryIterator na początku i wyczyść wszystkie zasoby wewnątrz niego Przykład
|
Szczegóły metody
fetchAll()
Pobierz wszystkie strony dla zapytania i zwróć pojedynczą pozycję FeedResponse.
Przykład
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const { resources } = await container.items
.query("SELECT * from c WHERE c.isCapitol = true")
.fetchAll();
function fetchAll(): Promise<FeedResponse<T>>
Zwraca
Promise<FeedResponse<T>>
fetchNext()
Pobierz następną partię ze źródła danych.
Może to spowodować pobranie większej liczby stron z zaplecza w zależności od ustawień i typu zapytania. Zapytania agregujące zazwyczaj pobierają wszystkie strony zaplecza przed zwróceniem pierwszej partii odpowiedzi.
Przykład
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const querySpec = {
query: "SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status",
};
const queryOptions = {
maxItemCount: 10, // maximum number of items to return per page
enableCrossPartitionQuery: true,
};
const queryIterator = container.items.query(querySpec, queryOptions);
while (queryIterator.hasMoreResults()) {
const { resources: result } = await queryIterator.fetchNext();
// process results
}
function fetchNext(): Promise<FeedResponse<T>>
Zwraca
Promise<FeedResponse<T>>
getAsyncIterator()
Pobiera iterator asynchroniczny, który przyniesie wyniki do ukończenia.
UWAGA: AsyncIterators są bardzo nową funkcją i może być konieczne użycie polifilów/itp. w celu ich użycia w kodzie.
Jeśli używasz języka TypeScript, możesz użyć następującego wielowypełniania, o ile jest on przeznaczony dla wersji ES6 lub nowszej i działa w węźle 6 lub nowszym.
if (!Symbol || !Symbol.asyncIterator) {
(Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}
Przykład
Iterowanie we wszystkich bazach danych
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
for await (const { resources: db } of client.databases.readAll().getAsyncIterator()) {
console.log(`Got ${db} from AsyncIterator`);
}
function getAsyncIterator(): AsyncIterable<FeedResponse<T>>
Zwraca
AsyncIterable<FeedResponse<T>>
hasMoreResults()
Ustal, czy nadal istnieją zasoby do przetworzenia na podstawie wartości tokenu kontynuacji lub elementów pozostałych w bieżącej partii w usłudze QueryIterator.
function hasMoreResults(): boolean
Zwraca
boolean
wartość true, jeśli istnieją inne elementy do przetworzenia w narzędziu QueryIterator.
reset()
Zresetuj element QueryIterator na początku i wyczyść wszystkie zasoby wewnątrz niego
Przykład
import { CosmosClient } from "@azure/cosmos";
const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });
const { database } = await client.databases.createIfNotExists({ id: "Test Database" });
const { container } = await database.containers.createIfNotExists({ id: "Test Container" });
const querySpec = {
query: "SELECT c.status, COUNT(c.id) AS count FROM c GROUP BY c.status",
};
const queryIterator = container.items.query(querySpec);
while (queryIterator.hasMoreResults()) {
const { resources: result } = await queryIterator.fetchNext();
// process results
}
queryIterator.reset();
function reset()