QueryIterator class
Representa un objeto QueryIterator, una implementación de la respuesta de fuente o consulta que permite recorrer y recorrer en iteración la respuesta en el servicio de base de datos de Azure Cosmos DB.
Métodos
fetch |
Capture todas las páginas de la consulta y devuelva una única feedResponse. de ejemplo de
|
fetch |
Recupere el siguiente lote de la fuente. Esto puede o no capturar más páginas del back-end en función de la configuración y el tipo de consulta. Las consultas agregadas generalmente capturarán todas las páginas de back-end antes de devolver el primer lote de respuestas. de ejemplo de
|
get |
Obtiene un iterador asincrónico que producirá resultados hasta la finalización. NOTA: AsyncIterators es una característica muy nueva y es posible que tenga que usar polyfils/etc. para usarlos en el código. Si usa TypeScript, puede usar el siguiente polyfill siempre que tenga como destino ES6 o superior y se ejecute en el nodo 6 o superior.
de ejemplo de Iteración en todas las bases de datos
|
has |
Determine si todavía hay recursos restantes para procesar en función del valor del token de continuación o de los elementos restantes en el lote actual en queryIterator. |
reset() | Restablezca queryIterator al principio y borre todos los recursos que contiene. de ejemplo de
|
Detalles del método
fetchAll()
Capture todas las páginas de la consulta y devuelva una única feedResponse.
de ejemplo de
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>>
Devoluciones
Promise<FeedResponse<T>>
fetchNext()
Recupere el siguiente lote de la fuente.
Esto puede o no capturar más páginas del back-end en función de la configuración y el tipo de consulta. Las consultas agregadas generalmente capturarán todas las páginas de back-end antes de devolver el primer lote de respuestas.
de ejemplo de
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>>
Devoluciones
Promise<FeedResponse<T>>
getAsyncIterator()
Obtiene un iterador asincrónico que producirá resultados hasta la finalización.
NOTA: AsyncIterators es una característica muy nueva y es posible que tenga que usar polyfils/etc. para usarlos en el código.
Si usa TypeScript, puede usar el siguiente polyfill siempre que tenga como destino ES6 o superior y se ejecute en el nodo 6 o superior.
if (!Symbol || !Symbol.asyncIterator) {
(Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}
de ejemplo de
Iteración en todas las bases de datos
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>>
Devoluciones
AsyncIterable<FeedResponse<T>>
hasMoreResults()
Determine si todavía hay recursos restantes para procesar en función del valor del token de continuación o de los elementos restantes en el lote actual en queryIterator.
function hasMoreResults(): boolean
Devoluciones
boolean
True si hay otros elementos que se van a procesar en queryIterator.
reset()
Restablezca queryIterator al principio y borre todos los recursos que contiene.
de ejemplo de
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()