Compartilhar via


FeedOptions interface

As opções de feed e os métodos de consulta.

Extends

Propriedades

accessCondition

Condições associadas à solicitação.

bufferItems

Habilite o buffer de itens adicionais durante consultas. Padrão: false

Isso armazenará em buffer uma página adicional por vez (multiplicada por maxDegreeOfParallelism) do servidor em segundo plano. Isso melhora a latência buscando páginas antes que elas sejam necessárias para o cliente. Se você estiver drenando todos os resultados do servidor, como .fetchAll, normalmente você deve habilitar isso. Se você estiver buscando apenas uma página por vez por meio do token de continuação, evite isso. Se você estiver esvaziando mais de uma página, mas não todo o conjunto de resultados, isso poderá ajudar a melhorar a latência, mas aumentará a quantidade total de RU/s de uso para atender a consulta inteira (pois algumas páginas serão buscadas mais de uma vez).

continuation

Token opaco para continuar a enumeração. Padrão: indefinido

continuationToken

Token opaco para continuar a enumeração. Padrão: indefinido

continuationTokenLimitInKB

Limita o tamanho do token de continuação na resposta. Padrão: indefinido

Os Tokens de Continuação contêm dados opcionais que podem ser removidos da serialização antes de escrevê-los em um cabeçalho. Por padrão, estamos limitando isso a 1kb para evitar cabeçalhos longos (Node.js tem um limite de tamanho de cabeçalho global). Um usuário pode definir esse campo para permitir cabeçalhos mais longos, o que pode ajudar o back-end a otimizar a execução da consulta."

enableScanInQuery

Permitir a verificação nas consultas que não puderam ser atendidas, pois a indexação foi recusada nos caminhos solicitados. Padrão: false

Em geral, é melhor evitar usar essa configuração. As verificações são relativamente caras e levam muito tempo para servir.

forceQueryPlan

Essa configuração força a consulta a usar um plano de consulta. Padrão: false

Observação: isso desabilitará o suporte ao token de continuação, mesmo para consultas de partição única.

Para consultas como agregações e a maioria das consultas de partição cruzada, isso acontece de qualquer maneira. No entanto, como a biblioteca não sabe que tipo de consulta ela é até que tenhamos de volta a primeira resposta, alguma otimização não pode acontecer até mais tarde.

Se essa configuração estiver habilitada, ela forçará o plano de consulta para a consulta, o que salvará algumas solicitações de rede e garantirá que o paralelismo possa acontecer. Útil para quando você sabe que está fazendo consultas de partição cruzada ou agregação.

maxDegreeOfParallelism

O número máximo de operações simultâneas que executam o lado do cliente durante a execução de consulta paralela no serviço de banco de dados do Azure Cosmos DB. Valores negativos fazem com que o sistema decida automaticamente o número de operações simultâneas a serem executadas. Padrão: 0 (sem paralelismo)

maxItemCount

Número máximo de itens a serem retornados na operação de enumeração. Padrão: indefinido (o servidor definirá a carga)

A expiração com esse valor geralmente pode resultar nas maiores alterações de desempenho na consulta.

Quanto menor a contagem de itens, mais rápido o primeiro resultado será entregue (para não agregações). Para valores maiores, levará mais tempo para atender à solicitação, mas você geralmente obterá uma taxa de transferência melhor para consultas grandes (ou seja, se você precisar de 1.000 itens antes de poder executar qualquer outra ação, defina maxItemCount como 1000. Se você puder começar a trabalhar após os primeiros 100, defina maxItemCount como 100.)

partitionKey

Limita a consulta a uma chave de partição específica. Padrão: indefinido

O escopo de uma consulta para uma única partição pode ser realizado de duas maneiras:

container.items.query('SELECT * from c', { partitionKey: "foo" }).toArray() container.items.query('SELECT * from c WHERE c.yourPartitionKey = "foo"').toArray()

O primeiro é útil quando o corpo da consulta está fora de seu controle, mas você ainda deseja restringi-lo a uma única partição. Exemplo: uma consulta especificada pelo usuário final.

populateIndexMetrics

Habilite o retorno de métricas de índice em cabeçalhos de resposta. Padrão: false

populateQueryMetrics

Habilite o retorno de métricas de consulta em cabeçalhos de resposta. Padrão: false

Usado para depurar consultas lentas ou caras. Também aumenta o tamanho da resposta e, se você estiver usando um tamanho de cabeçalho máximo baixo em Node.js, poderá encontrar problemas mais rapidamente.

useIncrementalFeed

Observação: considere o uso do changeFeed em vez disso.

Indica uma solicitação de feed de alterações. Deve ser definido como "Feed incremental" ou omitido de outra forma. Padrão: false

Propriedades herdadas

abortSignal

abortSignal para passar para todas as solicitações de rede subjacentes criadas por essa chamada de método. Veja https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Exemplo

Cancelar uma solicitação de leitura

const controller = new AbortController()
const {result: item} = await items.query('SELECT * from c', { abortSignal: controller.signal});
controller.abort()
initialHeaders

(Caso de uso avançado) Cabeçalhos iniciais para começar ao enviar solicitações para o Cosmos

maxIntegratedCacheStalenessInMs

Define o valor de desatualização associado à solicitação no serviço do Azure CosmosDB. Para solicitações em que o <xref:com.azure.cosmos.ConsistencyLevel> é <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, as respostas do cache integrado não são mais obsoletas do que o valor indicado por esse maxIntegratedCacheStaleness. Quando o nível de consistência não é definido, essa propriedade é ignorada.

O valor padrão é nulo

Há suporte para desatualização do cache em granularidade de milissegundos. Qualquer coisa menor que milissegundos será ignorada.

priorityLevel

Nível de prioridade (baixo/alto) para cada solicitação. As solicitações de baixa prioridade são sempre limitadas antes de qualquer solicitação de alta prioridade.

O valor padrão é null. Por padrão, todas as solicitações são de Alta prioridade

sessionToken

Habilita/desabilita a obtenção de estatísticas relacionadas à cota de contêineres de documentos para solicitações de leitura de contêiner de documento.

Detalhes da propriedade

accessCondition

Condições associadas à solicitação.

accessCondition?: { condition: string, type: string }

Valor da propriedade

{ condition: string, type: string }

bufferItems

Habilite o buffer de itens adicionais durante consultas. Padrão: false

Isso armazenará em buffer uma página adicional por vez (multiplicada por maxDegreeOfParallelism) do servidor em segundo plano. Isso melhora a latência buscando páginas antes que elas sejam necessárias para o cliente. Se você estiver drenando todos os resultados do servidor, como .fetchAll, normalmente você deve habilitar isso. Se você estiver buscando apenas uma página por vez por meio do token de continuação, evite isso. Se você estiver esvaziando mais de uma página, mas não todo o conjunto de resultados, isso poderá ajudar a melhorar a latência, mas aumentará a quantidade total de RU/s de uso para atender a consulta inteira (pois algumas páginas serão buscadas mais de uma vez).

bufferItems?: boolean

Valor da propriedade

boolean

continuation

Aviso

Essa API foi preterida.

Use continuationToken instead.

Token opaco para continuar a enumeração. Padrão: indefinido

continuation?: string

Valor da propriedade

string

continuationToken

Token opaco para continuar a enumeração. Padrão: indefinido

continuationToken?: string

Valor da propriedade

string

continuationTokenLimitInKB

Limita o tamanho do token de continuação na resposta. Padrão: indefinido

Os Tokens de Continuação contêm dados opcionais que podem ser removidos da serialização antes de escrevê-los em um cabeçalho. Por padrão, estamos limitando isso a 1kb para evitar cabeçalhos longos (Node.js tem um limite de tamanho de cabeçalho global). Um usuário pode definir esse campo para permitir cabeçalhos mais longos, o que pode ajudar o back-end a otimizar a execução da consulta."

continuationTokenLimitInKB?: number

Valor da propriedade

number

enableScanInQuery

Permitir a verificação nas consultas que não puderam ser atendidas, pois a indexação foi recusada nos caminhos solicitados. Padrão: false

Em geral, é melhor evitar usar essa configuração. As verificações são relativamente caras e levam muito tempo para servir.

enableScanInQuery?: boolean

Valor da propriedade

boolean

forceQueryPlan

Essa configuração força a consulta a usar um plano de consulta. Padrão: false

Observação: isso desabilitará o suporte ao token de continuação, mesmo para consultas de partição única.

Para consultas como agregações e a maioria das consultas de partição cruzada, isso acontece de qualquer maneira. No entanto, como a biblioteca não sabe que tipo de consulta ela é até que tenhamos de volta a primeira resposta, alguma otimização não pode acontecer até mais tarde.

Se essa configuração estiver habilitada, ela forçará o plano de consulta para a consulta, o que salvará algumas solicitações de rede e garantirá que o paralelismo possa acontecer. Útil para quando você sabe que está fazendo consultas de partição cruzada ou agregação.

forceQueryPlan?: boolean

Valor da propriedade

boolean

maxDegreeOfParallelism

O número máximo de operações simultâneas que executam o lado do cliente durante a execução de consulta paralela no serviço de banco de dados do Azure Cosmos DB. Valores negativos fazem com que o sistema decida automaticamente o número de operações simultâneas a serem executadas. Padrão: 0 (sem paralelismo)

maxDegreeOfParallelism?: number

Valor da propriedade

number

maxItemCount

Número máximo de itens a serem retornados na operação de enumeração. Padrão: indefinido (o servidor definirá a carga)

A expiração com esse valor geralmente pode resultar nas maiores alterações de desempenho na consulta.

Quanto menor a contagem de itens, mais rápido o primeiro resultado será entregue (para não agregações). Para valores maiores, levará mais tempo para atender à solicitação, mas você geralmente obterá uma taxa de transferência melhor para consultas grandes (ou seja, se você precisar de 1.000 itens antes de poder executar qualquer outra ação, defina maxItemCount como 1000. Se você puder começar a trabalhar após os primeiros 100, defina maxItemCount como 100.)

maxItemCount?: number

Valor da propriedade

number

partitionKey

Limita a consulta a uma chave de partição específica. Padrão: indefinido

O escopo de uma consulta para uma única partição pode ser realizado de duas maneiras:

container.items.query('SELECT * from c', { partitionKey: "foo" }).toArray() container.items.query('SELECT * from c WHERE c.yourPartitionKey = "foo"').toArray()

O primeiro é útil quando o corpo da consulta está fora de seu controle, mas você ainda deseja restringi-lo a uma única partição. Exemplo: uma consulta especificada pelo usuário final.

partitionKey?: PartitionKey

Valor da propriedade

populateIndexMetrics

Habilite o retorno de métricas de índice em cabeçalhos de resposta. Padrão: false

populateIndexMetrics?: boolean

Valor da propriedade

boolean

populateQueryMetrics

Habilite o retorno de métricas de consulta em cabeçalhos de resposta. Padrão: false

Usado para depurar consultas lentas ou caras. Também aumenta o tamanho da resposta e, se você estiver usando um tamanho de cabeçalho máximo baixo em Node.js, poderá encontrar problemas mais rapidamente.

populateQueryMetrics?: boolean

Valor da propriedade

boolean

useIncrementalFeed

Observação: considere o uso do changeFeed em vez disso.

Indica uma solicitação de feed de alterações. Deve ser definido como "Feed incremental" ou omitido de outra forma. Padrão: false

useIncrementalFeed?: boolean

Valor da propriedade

boolean

Detalhes das propriedades herdadas

abortSignal

abortSignal para passar para todas as solicitações de rede subjacentes criadas por essa chamada de método. Veja https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Exemplo

Cancelar uma solicitação de leitura

const controller = new AbortController()
const {result: item} = await items.query('SELECT * from c', { abortSignal: controller.signal});
controller.abort()
abortSignal?: AbortSignal

Valor da propriedade

AbortSignal

Herdado deSharedOptions.abortSignal

initialHeaders

(Caso de uso avançado) Cabeçalhos iniciais para começar ao enviar solicitações para o Cosmos

initialHeaders?: CosmosHeaders

Valor da propriedade

Herdado deSharedOptions.initialHeaders

maxIntegratedCacheStalenessInMs

Define o valor de desatualização associado à solicitação no serviço do Azure CosmosDB. Para solicitações em que o <xref:com.azure.cosmos.ConsistencyLevel> é <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, as respostas do cache integrado não são mais obsoletas do que o valor indicado por esse maxIntegratedCacheStaleness. Quando o nível de consistência não é definido, essa propriedade é ignorada.

O valor padrão é nulo

Há suporte para desatualização do cache em granularidade de milissegundos. Qualquer coisa menor que milissegundos será ignorada.

maxIntegratedCacheStalenessInMs?: number

Valor da propriedade

number

Herdado deSharedOptions.maxIntegratedCacheStalenessInMs

priorityLevel

Nível de prioridade (baixo/alto) para cada solicitação. As solicitações de baixa prioridade são sempre limitadas antes de qualquer solicitação de alta prioridade.

O valor padrão é null. Por padrão, todas as solicitações são de Alta prioridade

priorityLevel?: PriorityLevel

Valor da propriedade

Herdado deSharedOptions.priorityLevel

sessionToken

Habilita/desabilita a obtenção de estatísticas relacionadas à cota de contêineres de documentos para solicitações de leitura de contêiner de documento.

sessionToken?: string

Valor da propriedade

string

Herdado deSharedOptions.sessionToken