QueryIterator class
Představuje objekt QueryIterator, implementaci informačního kanálu nebo odpovědi dotazu, která umožňuje procházení a iteraci odpovědi v databázové službě Azure Cosmos DB.
Metody
| fetch |
Načtěte všechny stránky dotazu a vraťte jeden FeedResponse. příklad
|
| fetch |
Načtěte další dávku z informačního kanálu. To může nebo nemusí načíst další stránky z back-endu v závislosti na nastavení a typu dotazu. Agregační dotazy obvykle načtou všechny back-endové stránky před vrácením první dávky odpovědí. příklad
|
| get |
Získá asynchronní iterátor, který vrátí výsledky do dokončení. POZNÁMKA: AsyncIterátory jsou velmi nová funkce a možná budete muset použít polyfils/atd. k jejich použití v kódu. Pokud používáte TypeScript, můžete použít následující polyfill, pokud cílíte na ES6 nebo vyšší a běží na uzlu 6 nebo novějším.
příklad Iterace nad všemi databázemi
|
| has |
Zjistěte, jestli stále existují zbývající prostředky ke zpracování na základě hodnoty tokenu pokračování nebo prvků zbývajících v aktuální dávce v QueryIteratoru. |
| reset() | Resetování QueryIteratoru na začátek a vymazání všech prostředků uvnitř příklad
|
Podrobnosti metody
fetchAll()
Načtěte všechny stránky dotazu a vraťte jeden FeedResponse.
příklad
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>>
Návraty
Promise<FeedResponse<T>>
fetchNext()
Načtěte další dávku z informačního kanálu.
To může nebo nemusí načíst další stránky z back-endu v závislosti na nastavení a typu dotazu. Agregační dotazy obvykle načtou všechny back-endové stránky před vrácením první dávky odpovědí.
příklad
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>>
Návraty
Promise<FeedResponse<T>>
getAsyncIterator()
Získá asynchronní iterátor, který vrátí výsledky do dokončení.
POZNÁMKA: AsyncIterátory jsou velmi nová funkce a možná budete muset použít polyfils/atd. k jejich použití v kódu.
Pokud používáte TypeScript, můžete použít následující polyfill, pokud cílíte na ES6 nebo vyšší a běží na uzlu 6 nebo novějším.
if (!Symbol || !Symbol.asyncIterator) {
(Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}
příklad
Iterace nad všemi databázemi
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>>
Návraty
AsyncIterable<FeedResponse<T>>
hasMoreResults()
Zjistěte, jestli stále existují zbývající prostředky ke zpracování na základě hodnoty tokenu pokračování nebo prvků zbývajících v aktuální dávce v QueryIteratoru.
function hasMoreResults(): boolean
Návraty
boolean
true Pokud existují další prvky pro zpracování v QueryIterator.
reset()
Resetování QueryIteratoru na začátek a vymazání všech prostředků uvnitř
příklad
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()