QueryIterator class
Represents a QueryIterator Object, an implementation of feed or query response that enables traversal and iterating over the response in the Azure Cosmos DB database service.
Methods
fetch |
Fetch all pages for the query and return a single FeedResponse. |
fetch |
Retrieve the next batch from the feed. This may or may not fetch more pages from the backend depending on your settings and the type of query. Aggregate queries will generally fetch all backend pages before returning the first batch of responses. |
get |
Gets an async iterator that will yield results until completion. NOTE: AsyncIterators are a very new feature and you might need to use polyfils/etc. in order to use them in your code. If you're using TypeScript, you can use the following polyfill as long as you target ES6 or higher and are running on Node 6 or higher.
Example Iterate over all databases
|
has |
Determine if there are still remaining resources to process based on the value of the continuation token or the elements remaining on the current batch in the QueryIterator. |
reset() | Reset the QueryIterator to the beginning and clear all the resources inside it |
Method Details
fetchAll()
Fetch all pages for the query and return a single FeedResponse.
function fetchAll(): Promise<FeedResponse<T>>
Returns
Promise<FeedResponse<T>>
fetchNext()
Retrieve the next batch from the feed.
This may or may not fetch more pages from the backend depending on your settings and the type of query. Aggregate queries will generally fetch all backend pages before returning the first batch of responses.
function fetchNext(): Promise<FeedResponse<T>>
Returns
Promise<FeedResponse<T>>
getAsyncIterator()
Gets an async iterator that will yield results until completion.
NOTE: AsyncIterators are a very new feature and you might need to use polyfils/etc. in order to use them in your code.
If you're using TypeScript, you can use the following polyfill as long as you target ES6 or higher and are running on Node 6 or higher.
if (!Symbol || !Symbol.asyncIterator) {
(Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}
Example
Iterate over all databases
for await(const { resources: db } of client.databases.readAll().getAsyncIterator()) {
console.log(`Got ${db} from AsyncIterator`);
}
function getAsyncIterator(): AsyncIterable<FeedResponse<T>>
Returns
AsyncIterable<FeedResponse<T>>
hasMoreResults()
Determine if there are still remaining resources to process based on the value of the continuation token or the elements remaining on the current batch in the QueryIterator.
function hasMoreResults(): boolean
Returns
boolean
true if there is other elements to process in the QueryIterator.
reset()
Reset the QueryIterator to the beginning and clear all the resources inside it
function reset()