你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
QueryIterator class
表示 QueryIterator 对象,这是源或查询响应的实现,用于在 Azure Cosmos DB 数据库服务中遍历和循环访问响应。
方法
fetch |
提取查询的所有页面并返回单个 FeedResponse。 |
fetch |
从源中检索下一批。 这可能会从后端提取更多页面,也可能不从后端提取更多页面,具体取决于你的设置和查询类型。 聚合查询通常会在返回第一批响应之前提取所有后端页面。 |
get |
获取将在完成之前生成结果的异步迭代器。 注意:AsyncIterator 是一项非常新的功能,可能需要使用 polyfils/etc.才能在代码中使用它们。 如果使用的是 TypeScript,则只要以 ES6 或更高版本为目标并在节点 6 或更高版本上运行,就可以使用以下 polyfill。
示例 循环访问所有数据库
|
has |
根据 QueryIterator 中继续标记的值或当前批处理上剩余的元素,确定是否仍有剩余资源要处理。 |
reset() | 将 QueryIterator 重置为开头并清除其中的所有资源 |
方法详细信息
fetchAll()
提取查询的所有页面并返回单个 FeedResponse。
function fetchAll(): Promise<FeedResponse<T>>
返回
Promise<FeedResponse<T>>
fetchNext()
从源中检索下一批。
这可能会从后端提取更多页面,也可能不从后端提取更多页面,具体取决于你的设置和查询类型。 聚合查询通常会在返回第一批响应之前提取所有后端页面。
function fetchNext(): Promise<FeedResponse<T>>
返回
Promise<FeedResponse<T>>
getAsyncIterator()
获取将在完成之前生成结果的异步迭代器。
注意:AsyncIterator 是一项非常新的功能,可能需要使用 polyfils/etc.才能在代码中使用它们。
如果使用的是 TypeScript,则只要以 ES6 或更高版本为目标并在节点 6 或更高版本上运行,就可以使用以下 polyfill。
if (!Symbol || !Symbol.asyncIterator) {
(Symbol as any).asyncIterator = Symbol.for("Symbol.asyncIterator");
}
示例
循环访问所有数据库
for await(const { resources: db } of client.databases.readAll().getAsyncIterator()) {
console.log(`Got ${db} from AsyncIterator`);
}
function getAsyncIterator(): AsyncIterable<FeedResponse<T>>
返回
AsyncIterable<FeedResponse<T>>
hasMoreResults()
根据 QueryIterator 中继续标记的值或当前批处理上剩余的元素,确定是否仍有剩余资源要处理。
function hasMoreResults(): boolean
返回
boolean
如果 QueryIterator 中还有其他元素要处理,则为 true。
reset()
将 QueryIterator 重置为开头并清除其中的所有资源
function reset()