Share via


FeedOptions interface

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

Extends

Propriedades

accessCondition

Condições Associadas ao pedido.

bufferItems

Ative a colocação em memória intermédia de itens adicionais durante as consultas. Predefinição: falso

Isto irá colocar uma página adicional em memória intermédia de cada vez (multiplicada por maxDegreeOfParallelism) do servidor em segundo plano. Isto melhora a latência ao obter as páginas antes de serem necessárias pelo cliente. Se estiver a drenar todos os resultados do servidor, como .fetchAll, normalmente deve ativá-lo. Se estiver a obter apenas uma página de cada vez através do token de continuação, deve evitá-lo. Se estiver a drenar mais do que uma página, mas não todo o conjunto de resultados, poderá ajudar a melhorar a latência, mas aumentará a quantidade total de RU/s utilizada para servir toda a consulta (uma vez que algumas páginas serão obtidas mais do que uma vez).

continuation

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

continuationToken

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

continuationTokenLimitInKB

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

Os Tokens de Continuação contêm dados opcionais que podem ser removidos da serialização antes de os escrever num cabeçalho. Por predefinição, estamos a limitar isto a 1 kb para evitar cabeçalhos longos (Node.js tem um limite de tamanho de cabeçalho global). Um utilizador pode definir este campo para permitir cabeçalhos mais longos, o que pode ajudar a otimizar a execução de consultas de back-end."

enableScanInQuery

Permitir a análise nas consultas que não puderam ser servidas como indexação foi desativada nos caminhos pedidos. Predefinição: falso

Em geral, é melhor evitar utilizar esta definição. As análises são relativamente caras e demoram muito tempo a servir.

forceQueryPlan

Esta definição força a consulta a utilizar um plano de consulta. Predefinição: falso

Nota: esta ação irá desativar o suporte do token de continuação, mesmo para consultas de partição única.

Para consultas como agregações e a maioria das consultas entre partições, isto acontece mesmo assim. No entanto, uma vez que a biblioteca não sabe que tipo de consulta é até obtermos a primeira resposta, algumas otimizações só poderão ocorrer mais tarde.

Se esta definição estiver ativada, forçará o plano de consulta para a consulta, o que irá guardar alguns pedidos de rede e garantir que o paralelismo pode ocorrer. Útil para quando sabe que está a fazer consultas entre partições ou agregações.

maxDegreeOfParallelism

O número máximo de operações simultâneas que executam o lado do cliente durante a execução paralela de consultas no serviço de base de dados do Azure Cosmos DB. Os valores negativos fazem com que o sistema decida automaticamente o número de operações simultâneas a executar. Predefinição: 0 (sem paralelismo)

maxItemCount

Número máximo de itens a devolver na operação de enumeração. Predefinição: indefinido (payload definido pelo servidor)

A expiração com este valor pode, normalmente, resultar nas maiores alterações de desempenho da consulta.

Quanto menor for a contagem de itens, mais rápido será entregue o primeiro resultado (para não agregados). Para quantidades maiores, a execução do pedido demorará mais tempo, mas normalmente obterá um melhor débito para consultas grandes (ou seja, se precisar de 1000 itens antes de poder efetuar outras ações, defina maxItemCount como 1000. Se conseguir 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. Predefinição: indefinido

O âmbito de uma consulta para uma única partição pode ser realizado de duas formas:

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 do seu controlo, mas ainda pretende restringi-lo a uma única partição. Exemplo: uma consulta especificada pelo utilizador final.

populateIndexMetrics

Ative a devolução de métricas de índice nos cabeçalhos de resposta. Predefinição: falso

populateQueryMetrics

Ative a devolução de métricas de consulta nos cabeçalhos de resposta. Predefinição: falso

Utilizado para depurar consultas lentas ou dispendiosas. Também aumenta o tamanho da resposta e, se estiver a utilizar um tamanho de cabeçalho máximo baixo no Node.js, pode deparar-se com problemas mais rapidamente.

useIncrementalFeed

Nota: considere utilizar o changeFeed como alternativa.

Indica um pedido de feed de alterações. Tem de ser definido como "Feed incremental" ou omitido de outra forma. Predefinição: falso

Propriedades Herdadas

abortSignal

abortSignal para transmitir a todos os pedidos de rede subjacentes criados por esta chamada de método. Veja https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Exemplo

Cancelar um pedido de leitura

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

(Caso de utilização avançado) Cabeçalhos iniciais para começar quando enviar pedidos para o Cosmos

maxIntegratedCacheStalenessInMs

Define o valor de estagnação associado ao pedido no serviço Azure CosmosDB. Para pedidos em que as <xref:com.azure.cosmos.ConsistencyLevel> respostas is <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, da cache integrada não são garantidas como obsoletas do que o valor indicado por este maxIntegratedCacheStaleness. Quando o nível de consistência não está definido, esta propriedade é ignorada.

O valor predefinido é nulo

A Estagnação da Cache é suportada em milissegundos de granularidade. Qualquer coisa menor que milissegundos será ignorada.

priorityLevel

Nível de Prioridade (Baixo/Alto) para cada pedido. Os pedidos de baixa prioridade são sempre limitados antes de quaisquer pedidos de alta prioridade.

O valor predefinido é nulo. Por predefinição, todos os pedidos são de Alta prioridade

sessionToken

Ativa/desativa a obtenção de estatísticas relacionadas com a quota de contentor de documentos para pedidos de leitura de contentores de documentos.

Detalhes de Propriedade

accessCondition

Condições Associadas ao pedido.

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

Valor de Propriedade

{ condition: string, type: string }

bufferItems

Ative a colocação em memória intermédia de itens adicionais durante as consultas. Predefinição: falso

Isto irá colocar uma página adicional em memória intermédia de cada vez (multiplicada por maxDegreeOfParallelism) do servidor em segundo plano. Isto melhora a latência ao obter as páginas antes de serem necessárias pelo cliente. Se estiver a drenar todos os resultados do servidor, como .fetchAll, normalmente deve ativá-lo. Se estiver a obter apenas uma página de cada vez através do token de continuação, deve evitá-lo. Se estiver a drenar mais do que uma página, mas não todo o conjunto de resultados, poderá ajudar a melhorar a latência, mas aumentará a quantidade total de RU/s utilizada para servir toda a consulta (uma vez que algumas páginas serão obtidas mais do que uma vez).

bufferItems?: boolean

Valor de Propriedade

boolean

continuation

Aviso

Esta API foi preterida.

Use continuationToken instead.

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

continuation?: string

Valor de Propriedade

string

continuationToken

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

continuationToken?: string

Valor de Propriedade

string

continuationTokenLimitInKB

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

Os Tokens de Continuação contêm dados opcionais que podem ser removidos da serialização antes de os escrever num cabeçalho. Por predefinição, estamos a limitar isto a 1 kb para evitar cabeçalhos longos (Node.js tem um limite de tamanho de cabeçalho global). Um utilizador pode definir este campo para permitir cabeçalhos mais longos, o que pode ajudar a otimizar a execução de consultas de back-end."

continuationTokenLimitInKB?: number

Valor de Propriedade

number

enableScanInQuery

Permitir a análise nas consultas que não puderam ser servidas como indexação foi desativada nos caminhos pedidos. Predefinição: falso

Em geral, é melhor evitar utilizar esta definição. As análises são relativamente caras e demoram muito tempo a servir.

enableScanInQuery?: boolean

Valor de Propriedade

boolean

forceQueryPlan

Esta definição força a consulta a utilizar um plano de consulta. Predefinição: falso

Nota: esta ação irá desativar o suporte do token de continuação, mesmo para consultas de partição única.

Para consultas como agregações e a maioria das consultas entre partições, isto acontece mesmo assim. No entanto, uma vez que a biblioteca não sabe que tipo de consulta é até obtermos a primeira resposta, algumas otimizações só poderão ocorrer mais tarde.

Se esta definição estiver ativada, forçará o plano de consulta para a consulta, o que irá guardar alguns pedidos de rede e garantir que o paralelismo pode ocorrer. Útil para quando sabe que está a fazer consultas entre partições ou agregações.

forceQueryPlan?: boolean

Valor de Propriedade

boolean

maxDegreeOfParallelism

O número máximo de operações simultâneas que executam o lado do cliente durante a execução paralela de consultas no serviço de base de dados do Azure Cosmos DB. Os valores negativos fazem com que o sistema decida automaticamente o número de operações simultâneas a executar. Predefinição: 0 (sem paralelismo)

maxDegreeOfParallelism?: number

Valor de Propriedade

number

maxItemCount

Número máximo de itens a devolver na operação de enumeração. Predefinição: indefinido (payload definido pelo servidor)

A expiração com este valor pode, normalmente, resultar nas maiores alterações de desempenho da consulta.

Quanto menor for a contagem de itens, mais rápido será entregue o primeiro resultado (para não agregados). Para quantidades maiores, a execução do pedido demorará mais tempo, mas normalmente obterá um melhor débito para consultas grandes (ou seja, se precisar de 1000 itens antes de poder efetuar outras ações, defina maxItemCount como 1000. Se conseguir começar a trabalhar após os primeiros 100, defina maxItemCount como 100.)

maxItemCount?: number

Valor de Propriedade

number

partitionKey

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

O âmbito de uma consulta para uma única partição pode ser realizado de duas formas:

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 do seu controlo, mas ainda pretende restringi-lo a uma única partição. Exemplo: uma consulta especificada pelo utilizador final.

partitionKey?: PartitionKey

Valor de Propriedade

populateIndexMetrics

Ative a devolução de métricas de índice nos cabeçalhos de resposta. Predefinição: falso

populateIndexMetrics?: boolean

Valor de Propriedade

boolean

populateQueryMetrics

Ative a devolução de métricas de consulta nos cabeçalhos de resposta. Predefinição: falso

Utilizado para depurar consultas lentas ou dispendiosas. Também aumenta o tamanho da resposta e, se estiver a utilizar um tamanho de cabeçalho máximo baixo no Node.js, pode deparar-se com problemas mais rapidamente.

populateQueryMetrics?: boolean

Valor de Propriedade

boolean

useIncrementalFeed

Nota: considere utilizar o changeFeed como alternativa.

Indica um pedido de feed de alterações. Tem de ser definido como "Feed incremental" ou omitido de outra forma. Predefinição: falso

useIncrementalFeed?: boolean

Valor de Propriedade

boolean

Detalhes da Propriedade Herdada

abortSignal

abortSignal para transmitir a todos os pedidos de rede subjacentes criados por esta chamada de método. Veja https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Exemplo

Cancelar um pedido de leitura

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

Valor de Propriedade

AbortSignal

Herdado deSharedOptions.abortSignal

initialHeaders

(Caso de utilização avançado) Cabeçalhos iniciais para começar quando enviar pedidos para o Cosmos

initialHeaders?: CosmosHeaders

Valor de Propriedade

Herdado deSharedOptions.initialHeaders

maxIntegratedCacheStalenessInMs

Define o valor de estagnação associado ao pedido no serviço Azure CosmosDB. Para pedidos em que as <xref:com.azure.cosmos.ConsistencyLevel> respostas is <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, da cache integrada não são garantidas como obsoletas do que o valor indicado por este maxIntegratedCacheStaleness. Quando o nível de consistência não está definido, esta propriedade é ignorada.

O valor predefinido é nulo

A Estagnação da Cache é suportada em milissegundos de granularidade. Qualquer coisa menor que milissegundos será ignorada.

maxIntegratedCacheStalenessInMs?: number

Valor de Propriedade

number

Herdado deSharedOptions.maxIntegratedCacheStalenessInMs

priorityLevel

Nível de Prioridade (Baixo/Alto) para cada pedido. Os pedidos de baixa prioridade são sempre limitados antes de quaisquer pedidos de alta prioridade.

O valor predefinido é nulo. Por predefinição, todos os pedidos são de Alta prioridade

priorityLevel?: PriorityLevel

Valor de Propriedade

Herdado deSharedOptions.priorityLevel

sessionToken

Ativa/desativa a obtenção de estatísticas relacionadas com a quota de contentor de documentos para pedidos de leitura de contentores de documentos.

sessionToken?: string

Valor de Propriedade

string

Herdado deSharedOptions.sessionToken