你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

QueryIterator class

表示 QueryIterator 对象,这是源或查询响应的实现,用于在 Azure Cosmos DB 数据库服务中遍历和循环访问响应。

方法

fetchAll()

提取查询的所有页面并返回单个 FeedResponse。

fetchNext()

从源中检索下一批。

这可能会从后端提取更多页面,也可能不从后端提取更多页面,具体取决于你的设置和查询类型。 聚合查询通常会在返回第一批响应之前提取所有后端页面。

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`);
}
hasMoreResults()

根据 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()