QueryIterator class
Vertegenwoordigt een QueryIterator-object, een implementatie van feed- of queryreacties waarmee doorkruising en iteratie van het antwoord in de Azure Cosmos DB-databaseservice mogelijk is.
Methoden
fetch |
Haal alle pagina's voor de query op en retourneer één FeedResponse. voorbeeld van
|
fetch |
Haal de volgende batch op uit de feed. Dit kan al dan niet meer pagina's ophalen uit de back-end, afhankelijk van uw instellingen en het type query. Statistische query's halen over het algemeen alle back-endpagina's op voordat de eerste batch met antwoorden wordt geretourneerd. voorbeeld van
|
get |
Hiermee wordt een asynchrone iterator opgehaald die resultaten oplevert totdat deze is voltooid. OPMERKING: AsyncIterators zijn een zeer nieuwe functie en mogelijk moet u polyfils/etc. gebruiken om ze in uw code te kunnen gebruiken. Als u TypeScript gebruikt, kunt u de volgende polyfill gebruiken zolang u zich op ES6 of hoger richt en op Node 6 of hoger wordt uitgevoerd.
voorbeeld van Alle databases herhalen
|
has |
Bepaal of er nog resterende resources zijn die moeten worden verwerkt op basis van de waarde van het vervolgtoken of de elementen die in de huidige batch in de QueryIterator overblijven. |
reset() | De QueryIterator opnieuw instellen op het begin en alle resources erin wissen voorbeeld van
|
Methodedetails
fetchAll()
Haal alle pagina's voor de query op en retourneer één FeedResponse.
voorbeeld van
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>>
Retouren
Promise<FeedResponse<T>>
fetchNext()
Haal de volgende batch op uit de feed.
Dit kan al dan niet meer pagina's ophalen uit de back-end, afhankelijk van uw instellingen en het type query. Statistische query's halen over het algemeen alle back-endpagina's op voordat de eerste batch met antwoorden wordt geretourneerd.
voorbeeld van
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>>
Retouren
Promise<FeedResponse<T>>
getAsyncIterator()
Hiermee wordt een asynchrone iterator opgehaald die resultaten oplevert totdat deze is voltooid.
OPMERKING: AsyncIterators zijn een zeer nieuwe functie en mogelijk moet u polyfils/etc. gebruiken om ze in uw code te kunnen gebruiken.
Als u TypeScript gebruikt, kunt u de volgende polyfill gebruiken zolang u zich op ES6 of hoger richt en op Node 6 of hoger wordt uitgevoerd.
if (!Symbol || !Symbol.asyncIterator) {
(Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}
voorbeeld van
Alle databases herhalen
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>>
Retouren
AsyncIterable<FeedResponse<T>>
hasMoreResults()
Bepaal of er nog resterende resources zijn die moeten worden verwerkt op basis van de waarde van het vervolgtoken of de elementen die in de huidige batch in de QueryIterator overblijven.
function hasMoreResults(): boolean
Retouren
boolean
waar als er andere elementen moeten worden verwerkt in de QueryIterator.
reset()
De QueryIterator opnieuw instellen op het begin en alle resources erin wissen
voorbeeld van
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()