Share via


FeedOptions interface

Las opciones de fuente y los métodos de consulta.

Extends

Propiedades

accessCondition

Condiciones asociadas a la solicitud.

bufferItems

Habilite el almacenamiento en búfer de elementos adicionales durante las consultas. Valor predeterminado: false

Esto almacenará en búfer una página adicional a la vez (multiplicada por maxDegreeOfParallelism) del servidor en segundo plano. Esto mejora la latencia mediante la captura de páginas antes de que el cliente las necesite. Si va a purgar todos los resultados del servidor, como .fetchAll, normalmente debe habilitarlo. Si solo está capturando una página a la vez a través del token de continuación, debe evitarlo. Si va a purgar más de una página, pero no todo el conjunto de resultados, puede ayudar a mejorar la latencia, pero aumentará la cantidad total de RU/s que se usan para atender toda la consulta (ya que algunas páginas se capturarán más de una vez).

continuation

Token opaco para continuar la enumeración. Valor predeterminado: sin definir

continuationToken

Token opaco para continuar la enumeración. Valor predeterminado: sin definir

continuationTokenLimitInKB

Limita el tamaño del token de continuación en la respuesta. Valor predeterminado: sin definir

Los tokens de continuación contienen datos opcionales que se pueden quitar de la serialización antes de escribirlos en un encabezado. De forma predeterminada, se limita a 1 kb para evitar encabezados largos (Node.js tiene un límite de tamaño de encabezado global). Un usuario puede establecer este campo para permitir encabezados más largos, lo que puede ayudar al back-end a optimizar la ejecución de consultas".

enableScanInQuery

Permitir el examen en las consultas que no se pudieron servir como indexación se optó por no participar en las rutas de acceso solicitadas. Valor predeterminado: false

En general, es mejor evitar el uso de esta configuración. Los exámenes son relativamente caros y tardan mucho tiempo en servirse.

forceQueryPlan

Esta configuración obliga a la consulta a usar un plan de consulta. Valor predeterminado: false

Nota: Esto deshabilitará la compatibilidad con tokens de continuación, incluso para consultas de partición única.

En el caso de consultas como agregados y la mayoría de las consultas entre particiones, esto sucede de todos modos. Sin embargo, dado que la biblioteca no sabe qué tipo de consulta es hasta que se devuelve la primera respuesta, algunas optimizaciones no pueden ocurrir hasta más tarde.

Si esta configuración está habilitada, forzará el plan de consulta para la consulta, lo que guardará algunas solicitudes de red y garantizará que se pueda producir paralelismo. Resulta útil cuando sabe que está realizando consultas entre particiones o agregados.

maxDegreeOfParallelism

Número máximo de operaciones simultáneas que ejecutan el lado cliente durante la ejecución de consultas paralelas en el servicio de base de datos de Azure Cosmos DB. Los valores negativos hacen que el sistema decida automáticamente el número de operaciones simultáneas que se van a ejecutar. Valor predeterminado: 0 (sin paralelismo)

maxItemCount

Número máximo de elementos que se van a devolver en la operación de enumeración. Valor predeterminado: sin definir (el servidor definirá la carga)

La expiración con este valor normalmente puede dar lugar a los mayores cambios de rendimiento en la consulta.

Cuanto menor sea el número de elementos, más rápido se entregará el primer resultado (para los agregados que no son agregados). Para cantidades mayores, tardará más tiempo en atender la solicitud, pero normalmente obtendrá un mejor rendimiento para consultas grandes (es decir, si necesita 1000 elementos antes de poder realizar cualquier otra acción, establezca maxItemCount en 1000. Si puede empezar a realizar el trabajo después de los primeros 100, establezca maxItemCount en 100).

partitionKey

Limita la consulta a una clave de partición específica. Valor predeterminado: sin definir

El ámbito de una consulta a una sola partición se puede lograr de dos maneras:

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

El primero es útil cuando el cuerpo de la consulta está fuera del control, pero todavía desea restringirlo a una sola partición. Ejemplo: una consulta especificada por el usuario final.

populateIndexMetrics

Habilite la devolución de métricas de índice en los encabezados de respuesta. Valor predeterminado: false

populateQueryMetrics

Habilite la devolución de métricas de consulta en encabezados de respuesta. Valor predeterminado: false

Se usa para depurar consultas lentas o costosas. También aumenta el tamaño de respuesta y, si usa un tamaño de encabezado máximo bajo en Node.js, puede encontrarse con problemas más rápidos.

useIncrementalFeed

Nota: considere la posibilidad de usar changeFeed en su lugar.

Indica una solicitud de fuente de cambios. Debe establecerse en "Fuente incremental" o en caso contrario. Valor predeterminado: false

Propiedades heredadas

abortSignal

abortSignal para pasar a todas las solicitudes de red subyacentes creadas por esta llamada de método. Consulta https://developer.mozilla.org/en-US/docs/Web/API/AbortController.

Ejemplo

Cancelación de una solicitud de lectura

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

(Caso de uso avanzado) Encabezados iniciales con los que empezar al enviar solicitudes a Cosmos

maxIntegratedCacheStalenessInMs

Establece el valor de obsolescencia asociado a la solicitud en el servicio Azure CosmosDB. Para las solicitudes en las <xref:com.azure.cosmos.ConsistencyLevel> que es <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> o <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, se garantiza que las respuestas de la memoria caché integrada no sean obsoletas que el valor indicado por este maxIntegratedCacheStaleness. Cuando no se establece el nivel de coherencia, esta propiedad se omite.

El valor predeterminado es NULL

La obsolescencia de caché se admite en granularidad de milisegundos. Se omitirá cualquier cosa menor que milisegundos.

priorityLevel

Nivel de prioridad (bajo/alto) para cada solicitud. Las solicitudes de prioridad baja siempre se limitan antes que las solicitudes de prioridad alta.

El valor predeterminado es null. De forma predeterminada, todas las solicitudes son de prioridad alta.

sessionToken

Habilita o deshabilita la obtención de estadísticas relacionadas con la cuota de contenedores de documentos para las solicitudes de lectura del contenedor de documentos.

Detalles de las propiedades

accessCondition

Condiciones asociadas a la solicitud.

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

Valor de propiedad

{ condition: string, type: string }

bufferItems

Habilite el almacenamiento en búfer de elementos adicionales durante las consultas. Valor predeterminado: false

Esto almacenará en búfer una página adicional a la vez (multiplicada por maxDegreeOfParallelism) del servidor en segundo plano. Esto mejora la latencia mediante la captura de páginas antes de que el cliente las necesite. Si va a purgar todos los resultados del servidor, como .fetchAll, normalmente debe habilitarlo. Si solo está capturando una página a la vez a través del token de continuación, debe evitarlo. Si va a purgar más de una página, pero no todo el conjunto de resultados, puede ayudar a mejorar la latencia, pero aumentará la cantidad total de RU/s que se usan para atender toda la consulta (ya que algunas páginas se capturarán más de una vez).

bufferItems?: boolean

Valor de propiedad

boolean

continuation

Advertencia

Esta API ya está en desuso.

Use continuationToken instead.

Token opaco para continuar la enumeración. Valor predeterminado: sin definir

continuation?: string

Valor de propiedad

string

continuationToken

Token opaco para continuar la enumeración. Valor predeterminado: sin definir

continuationToken?: string

Valor de propiedad

string

continuationTokenLimitInKB

Limita el tamaño del token de continuación en la respuesta. Valor predeterminado: sin definir

Los tokens de continuación contienen datos opcionales que se pueden quitar de la serialización antes de escribirlos en un encabezado. De forma predeterminada, se limita a 1 kb para evitar encabezados largos (Node.js tiene un límite de tamaño de encabezado global). Un usuario puede establecer este campo para permitir encabezados más largos, lo que puede ayudar al back-end a optimizar la ejecución de consultas".

continuationTokenLimitInKB?: number

Valor de propiedad

number

enableScanInQuery

Permitir el examen en las consultas que no se pudieron servir como indexación se optó por no participar en las rutas de acceso solicitadas. Valor predeterminado: false

En general, es mejor evitar el uso de esta configuración. Los exámenes son relativamente caros y tardan mucho tiempo en servirse.

enableScanInQuery?: boolean

Valor de propiedad

boolean

forceQueryPlan

Esta configuración obliga a la consulta a usar un plan de consulta. Valor predeterminado: false

Nota: Esto deshabilitará la compatibilidad con tokens de continuación, incluso para consultas de partición única.

En el caso de consultas como agregados y la mayoría de las consultas entre particiones, esto sucede de todos modos. Sin embargo, dado que la biblioteca no sabe qué tipo de consulta es hasta que se devuelve la primera respuesta, algunas optimizaciones no pueden ocurrir hasta más tarde.

Si esta configuración está habilitada, forzará el plan de consulta para la consulta, lo que guardará algunas solicitudes de red y garantizará que se pueda producir paralelismo. Resulta útil cuando sabe que está realizando consultas entre particiones o agregados.

forceQueryPlan?: boolean

Valor de propiedad

boolean

maxDegreeOfParallelism

Número máximo de operaciones simultáneas que ejecutan el lado cliente durante la ejecución de consultas paralelas en el servicio de base de datos de Azure Cosmos DB. Los valores negativos hacen que el sistema decida automáticamente el número de operaciones simultáneas que se van a ejecutar. Valor predeterminado: 0 (sin paralelismo)

maxDegreeOfParallelism?: number

Valor de propiedad

number

maxItemCount

Número máximo de elementos que se van a devolver en la operación de enumeración. Valor predeterminado: sin definir (el servidor definirá la carga)

La expiración con este valor normalmente puede dar lugar a los mayores cambios de rendimiento en la consulta.

Cuanto menor sea el número de elementos, más rápido se entregará el primer resultado (para los agregados que no son agregados). Para cantidades mayores, tardará más tiempo en atender la solicitud, pero normalmente obtendrá un mejor rendimiento para consultas grandes (es decir, si necesita 1000 elementos antes de poder realizar cualquier otra acción, establezca maxItemCount en 1000. Si puede empezar a realizar el trabajo después de los primeros 100, establezca maxItemCount en 100).

maxItemCount?: number

Valor de propiedad

number

partitionKey

Limita la consulta a una clave de partición específica. Valor predeterminado: sin definir

El ámbito de una consulta a una sola partición se puede lograr de dos maneras:

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

El primero es útil cuando el cuerpo de la consulta está fuera del control, pero todavía desea restringirlo a una sola partición. Ejemplo: una consulta especificada por el usuario final.

partitionKey?: PartitionKey

Valor de propiedad

populateIndexMetrics

Habilite la devolución de métricas de índice en los encabezados de respuesta. Valor predeterminado: false

populateIndexMetrics?: boolean

Valor de propiedad

boolean

populateQueryMetrics

Habilite la devolución de métricas de consulta en encabezados de respuesta. Valor predeterminado: false

Se usa para depurar consultas lentas o costosas. También aumenta el tamaño de respuesta y, si usa un tamaño de encabezado máximo bajo en Node.js, puede encontrarse con problemas más rápidos.

populateQueryMetrics?: boolean

Valor de propiedad

boolean

useIncrementalFeed

Nota: considere la posibilidad de usar changeFeed en su lugar.

Indica una solicitud de fuente de cambios. Debe establecerse en "Fuente incremental" o en caso contrario. Valor predeterminado: false

useIncrementalFeed?: boolean

Valor de propiedad

boolean

Detalles de las propiedades heredadas

abortSignal

abortSignal para pasar a todas las solicitudes de red subyacentes creadas por esta llamada de método. Consulta https://developer.mozilla.org/en-US/docs/Web/API/AbortController.

Ejemplo

Cancelación de una solicitud de lectura

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

Valor de propiedad

AbortSignal

Heredado deSharedOptions.abortSignal

initialHeaders

(Caso de uso avanzado) Encabezados iniciales con los que empezar al enviar solicitudes a Cosmos

initialHeaders?: CosmosHeaders

Valor de propiedad

Heredado deSharedOptions.initialHeaders

maxIntegratedCacheStalenessInMs

Establece el valor de obsolescencia asociado a la solicitud en el servicio Azure CosmosDB. Para las solicitudes en las <xref:com.azure.cosmos.ConsistencyLevel> que es <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> o <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, se garantiza que las respuestas de la memoria caché integrada no sean obsoletas que el valor indicado por este maxIntegratedCacheStaleness. Cuando no se establece el nivel de coherencia, esta propiedad se omite.

El valor predeterminado es NULL

La obsolescencia de caché se admite en granularidad de milisegundos. Se omitirá cualquier cosa menor que milisegundos.

maxIntegratedCacheStalenessInMs?: number

Valor de propiedad

number

Heredado deSharedOptions.maxIntegratedCacheStalenessInMs

priorityLevel

Nivel de prioridad (bajo/alto) para cada solicitud. Las solicitudes de prioridad baja siempre se limitan antes que las solicitudes de prioridad alta.

El valor predeterminado es null. De forma predeterminada, todas las solicitudes son de prioridad alta.

priorityLevel?: PriorityLevel

Valor de propiedad

Heredado deSharedOptions.priorityLevel

sessionToken

Habilita o deshabilita la obtención de estadísticas relacionadas con la cuota de contenedores de documentos para las solicitudes de lectura del contenedor de documentos.

sessionToken?: string

Valor de propiedad

string

Heredado deSharedOptions.sessionToken