QueryIterator class
Egy QueryIterator-objektumot jelöl, amely a hírcsatorna vagy lekérdezési válasz implementációja, amely lehetővé teszi a válasz bejárását és iterálását az Azure Cosmos DB adatbázis-szolgáltatásban.
Metódusok
| fetch |
A lekérdezés összes lapjának beolvasása és egyetlen FeedResponse visszaadása. példa
|
| fetch |
Kérje le a következő köteget a hírcsatornából. Ez a beállításoktól és a lekérdezés típusától függően előfordulhat, hogy több lapot is lekér a háttérrendszerből. Az összesítő lekérdezések általában lekérik az összes háttérlapot az első válaszköteg visszaadása előtt. példa
|
| get |
Lekéri az aszinkron iterátort, amely a befejezésig eredményt ad. MEGJEGYZÉS: Az aszinkronátorok egy nagyon új funkció, és előfordulhat, hogy polifileket/stb. kell használnia ahhoz, hogy használhassa őket a kódban. TypeScript használata esetén a következő polifillt használhatja mindaddig, amíg az ES6-ot vagy annál magasabbat célozza, és a 6. csomóponton vagy annál nagyobb csomóponton fut.
példa Iteráció az összes adatbázison
|
| has |
Állapítsa meg, hogy vannak-e még feldolgozandó erőforrások a folytatási jogkivonat értéke vagy a QueryIterator aktuális kötegében fennmaradó elemek alapján. |
| reset() | Állítsa vissza a QueryIteratort az elejére, és törölje a benne lévő összes erőforrást példa
|
Metódus adatai
fetchAll()
A lekérdezés összes lapjának beolvasása és egyetlen FeedResponse visszaadása.
példa
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>>
Válaszok
Promise<FeedResponse<T>>
fetchNext()
Kérje le a következő köteget a hírcsatornából.
Ez a beállításoktól és a lekérdezés típusától függően előfordulhat, hogy több lapot is lekér a háttérrendszerből. Az összesítő lekérdezések általában lekérik az összes háttérlapot az első válaszköteg visszaadása előtt.
példa
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>>
Válaszok
Promise<FeedResponse<T>>
getAsyncIterator()
Lekéri az aszinkron iterátort, amely a befejezésig eredményt ad.
MEGJEGYZÉS: Az aszinkronátorok egy nagyon új funkció, és előfordulhat, hogy polifileket/stb. kell használnia ahhoz, hogy használhassa őket a kódban.
TypeScript használata esetén a következő polifillt használhatja mindaddig, amíg az ES6-ot vagy annál magasabbat célozza, és a 6. csomóponton vagy annál nagyobb csomóponton fut.
if (!Symbol || !Symbol.asyncIterator) {
(Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}
példa
Iteráció az összes adatbázison
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>>
Válaszok
AsyncIterable<FeedResponse<T>>
hasMoreResults()
Állapítsa meg, hogy vannak-e még feldolgozandó erőforrások a folytatási jogkivonat értéke vagy a QueryIterator aktuális kötegében fennmaradó elemek alapján.
function hasMoreResults(): boolean
Válaszok
boolean
igaz, ha a QueryIteratorban más elemeket is fel kell dolgozni.
reset()
Állítsa vissza a QueryIteratort az elejére, és törölje a benne lévő összes erőforrást
példa
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()