Partager via


FeedOptions interface

Options de flux et méthodes de requête.

Extends

Propriétés

accessCondition

Conditions associées à la requête.

allowUnboundedNonStreamingQueries

Valide uniquement pour l’ordre non de diffusion en continu par requête. Valeur par défaut : false ; Lorsqu’elle est définie sur true, elle permet aux requêtes de contourner le comportement par défaut qui bloque les requêtes nonStreaming sans clauses supérieures ou limitées.

bufferItems

Activez la mise en mémoire tampon d’éléments supplémentaires pendant les requêtes. Valeur par défaut : false

Cela met en mémoire tampon une page supplémentaire à la fois (multipliée par maxDegreeOfParallelism) à partir du serveur en arrière-plan. Cela améliore la latence en récupérant des pages avant qu’elles ne soient nécessaires par le client. Si vous drainez tous les résultats du serveur, comme .fetchAll, vous devez généralement l’activer. Si vous récupérez une seule page à la fois via le jeton de continuation, vous devez éviter cela. Si vous drainez plusieurs pages, mais pas l’ensemble du jeu de résultats, cela peut contribuer à améliorer la latence, mais il augmente la quantité totale de RU/s utilisée pour traiter l’intégralité de la requête (car certaines pages seront extraites plusieurs fois).

continuation

Jeton opaque pour poursuivre l’énumération. Valeur par défaut : non défini

continuationToken

Jeton opaque pour poursuivre l’énumération. Valeur par défaut : non défini

continuationTokenLimitInKB

Limite la taille du jeton de continuation dans la réponse. Valeur par défaut : non défini

Les jetons de continuation contiennent des données facultatives qui peuvent être supprimées de la sérialisation avant de les écrire dans un en-tête. Par défaut, nous limitons cela à 1 Ko pour éviter les en-têtes longs (Node.js a une limite de taille d’en-tête globale). Un utilisateur peut définir ce champ pour permettre des en-têtes plus longs, ce qui peut aider le back-end à optimiser l’exécution des requêtes. »

disableHybridSearchQueryPlanOptimization

Valeur par défaut : false. Si la valeur est true, elle désactive l’optimisation du plan de requête de recherche hybride. Cette optimisation est activée par défaut et permet d’améliorer les performances des requêtes de recherche hybrides.

disableNonStreamingOrderByQuery

Désactivez la fonctionnalité de requête nonStreamingOrderBy dans les fonctionnalités de requête prises en charge. Valeur par défaut : false. Définissez la valeur true pour éviter l’erreur d’une ancienne passerelle qui ne prend pas en charge cette fonctionnalité.

enableQueryControl

Contrôle le comportement d’exécution des requêtes. Valeur par défaut : false. Si la valeur est false, la requête réessaie jusqu’à ce que les résultats soient prêts et maxItemCount atteints, ce qui peut prendre du temps pour les partitions volumineuses avec des données relativement petites. Si la valeur est true, analyse les partitions jusqu’à maxDegreeOfParallelism, ajoute les résultats à la mémoire tampon et renvoie ce qui est disponible. Si les résultats ne sont pas prêts, il renvoie une réponse vide.

enableScanInQuery

Autoriser l’analyse sur les requêtes qui n’ont pas pu être traitées comme l’indexation a été désactivée sur les chemins demandés. Valeur par défaut : false

En général, il est préférable d’éviter d’utiliser ce paramètre. Les analyses sont relativement coûteuses et prennent beaucoup de temps pour servir.

forceQueryPlan

Ce paramètre force la requête à utiliser un plan de requête. Valeur par défaut : false

Remarque : cela désactive la prise en charge des jetons de continuation, même pour les requêtes de partition unique.

Pour les requêtes telles que les agrégats et la plupart des requêtes de partition croisée, cela se produit de toute façon. Toutefois, étant donné que la bibliothèque ne sait pas quel type de requête il s’agit jusqu’à ce que nous récupérions la première réponse, une certaine optimisation ne peut pas se produire avant plus tard.

Si ce paramètre est activé, il force le plan de requête pour la requête, ce qui enregistre certaines requêtes réseau et garantit que le parallélisme peut se produire. Utile lorsque vous savez que vous effectuez des requêtes inter-partitions ou agrégées.

maxDegreeOfParallelism

Nombre maximal d’opérations simultanées qui exécutent le côté client pendant l’exécution de requêtes parallèles dans le service de base de données Azure Cosmos DB. Les valeurs négatives rendent le système décider automatiquement du nombre d’opérations simultanées à exécuter. Valeur par défaut : 0 (pas de parallélisme)

maxItemCount

Nombre maximal d’éléments à retourner dans l’opération d’énumération. Par défaut : non défini (la charge utile définie par le serveur)

L’expiration de cette valeur peut généralement entraîner les changements de performances les plus importants de la requête.

Plus le nombre d’éléments est réduit, plus le premier résultat sera remis (pour les non-agrégats). Pour de grandes quantités, il faudra plus de temps pour traiter la requête, mais vous obtiendrez généralement un meilleur débit pour les requêtes volumineuses (c’est-à-dire, si vous avez besoin de 1 000 éléments avant de pouvoir effectuer d’autres actions, définissez maxItemCount sur 1000. Si vous pouvez commencer à faire du travail après les 100 premiers, définissez maxItemCount sur 100.)

partitionKey

Limite la requête à une clé de partition spécifique. Valeur par défaut : non défini

L’étendue d’une requête à une seule partition peut être effectuée de deux façons :

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

L’ancien est utile lorsque le corps de la requête est hors de votre contrôle, mais que vous souhaitez toujours le restreindre à une seule partition. Exemple : requête spécifiée par l’utilisateur final.

populateIndexMetrics

Activez le retour des métriques d’index dans les en-têtes de réponse. Valeur par défaut : false

populateQueryMetrics

Activez le retour des métriques de requête dans les en-têtes de réponse. Valeur par défaut : false

Utilisé pour le débogage de requêtes lentes ou coûteuses. Augmente également la taille de réponse et si vous utilisez une taille d’en-tête maximale faible dans Node.js, vous pouvez rencontrer des problèmes plus rapidement.

useIncrementalFeed

Remarque : envisagez d’utiliser changeFeed à la place.

Indique une demande de flux de modification. Doit être défini sur « Flux incrémentiel » ou omis dans le cas contraire. Valeur par défaut : false

vectorSearchBufferSize

Spécifie une taille de mémoire tampon maximale personnalisée pour stocker les résultats finaux pour les requêtes nonStreamingOrderBy. Cette valeur est ignorée si la requête inclut des clauses top/offset+limit.

Propriétés héritées

abortSignal

abandonnerSignal pour passer à toutes les demandes réseau sous-jacentes créées par cet appel de méthode. Voir https://developer.mozilla.org/en-US/docs/Web/API/AbortController

exemple

Annuler une demande de lecture

import { CosmosClient } from "@azure/cosmos";

const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });

const { database } = await client.databases.createIfNotExists({ id: "Test Database" });

const { container } = await database.containers.createIfNotExists({ id: "Test Container" });

const controller = new AbortController();
const results = container.items.query("SELECT * from c", {
  abortSignal: controller.signal,
});
bypassIntegratedCache

Définit si le cache intégré doit être contourné ou activé pour la requête dans le service Azure CosmosDB.

La valeur par défaut est false. Par défaut, le cache intégré est activé

consistencyLevel

Niveau de cohérence requis par le client.

disableRUPerMinuteUsage

DisableRUPerMinuteUsage est utilisé pour activer/désactiver la capacité des unités de requête(RU)/minute pour traiter la requête si des unités de requête approvisionnées/seconde régulières sont épuisées.

excludedLocations

Exclut une ou plusieurs régions Azure pour l’opération.

Cette option n’est appliquée que lorsque enableEndPointDiscovery est défini sur true.

initialHeaders

(Cas d’usage avancé) En-têtes initiaux à démarrer lors de l’envoi de requêtes à Cosmos

maxIntegratedCacheStalenessInMs

Définit la valeur d’obsolescence associée à la requête dans le service Azure CosmosDB. Pour les demandes où l'<xref:com.azure.cosmos.ConsistencyLevel> est <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, les réponses du cache intégré ne sont pas garanties d’être plus staler que la valeur indiquée par ce maxIntegratedCacheStaleness. Lorsque le niveau de cohérence n’est pas défini, cette propriété est ignorée.

La valeur par défaut est Null

L’obsolescence du cache est prise en charge en millisecondes de granularité. Tout ce qui est inférieur à millisecondes est ignoré.

priorityLevel

Niveau de priorité (faible/élevé) pour chaque requête. Les requêtes de faible priorité sont toujours limitées avant toutes les demandes de priorité élevée.

La valeur par défaut est Null. Par défaut, toutes les requêtes sont de priorité élevée

sessionToken

Active/désactive l’obtention des statistiques relatives au quota de conteneurs de documents pour les demandes de lecture de conteneur de documents.

throughputBucket

Débit Bucket pour une demande.

La valeur par défaut est Null. Dans ce cas, la demande peut utiliser 100% du débit de la partition.

Pour plus d’informations, consultez [Bucketing de débit Cosmos DB](https://aka.ms/cosmsodb-bucketing).

Détails de la propriété

accessCondition

Conditions associées à la requête.

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

Valeur de propriété

{ condition: string, type: string }

allowUnboundedNonStreamingQueries

Valide uniquement pour l’ordre non de diffusion en continu par requête. Valeur par défaut : false ; Lorsqu’elle est définie sur true, elle permet aux requêtes de contourner le comportement par défaut qui bloque les requêtes nonStreaming sans clauses supérieures ou limitées.

allowUnboundedNonStreamingQueries?: boolean

Valeur de propriété

boolean

bufferItems

Activez la mise en mémoire tampon d’éléments supplémentaires pendant les requêtes. Valeur par défaut : false

Cela met en mémoire tampon une page supplémentaire à la fois (multipliée par maxDegreeOfParallelism) à partir du serveur en arrière-plan. Cela améliore la latence en récupérant des pages avant qu’elles ne soient nécessaires par le client. Si vous drainez tous les résultats du serveur, comme .fetchAll, vous devez généralement l’activer. Si vous récupérez une seule page à la fois via le jeton de continuation, vous devez éviter cela. Si vous drainez plusieurs pages, mais pas l’ensemble du jeu de résultats, cela peut contribuer à améliorer la latence, mais il augmente la quantité totale de RU/s utilisée pour traiter l’intégralité de la requête (car certaines pages seront extraites plusieurs fois).

bufferItems?: boolean

Valeur de propriété

boolean

continuation

Avertissement

Cette API est à présent déconseillée.

Use continuationToken instead.

Jeton opaque pour poursuivre l’énumération. Valeur par défaut : non défini

continuation?: string

Valeur de propriété

string

continuationToken

Jeton opaque pour poursuivre l’énumération. Valeur par défaut : non défini

continuationToken?: string

Valeur de propriété

string

continuationTokenLimitInKB

Limite la taille du jeton de continuation dans la réponse. Valeur par défaut : non défini

Les jetons de continuation contiennent des données facultatives qui peuvent être supprimées de la sérialisation avant de les écrire dans un en-tête. Par défaut, nous limitons cela à 1 Ko pour éviter les en-têtes longs (Node.js a une limite de taille d’en-tête globale). Un utilisateur peut définir ce champ pour permettre des en-têtes plus longs, ce qui peut aider le back-end à optimiser l’exécution des requêtes. »

continuationTokenLimitInKB?: number

Valeur de propriété

number

disableHybridSearchQueryPlanOptimization

Valeur par défaut : false. Si la valeur est true, elle désactive l’optimisation du plan de requête de recherche hybride. Cette optimisation est activée par défaut et permet d’améliorer les performances des requêtes de recherche hybrides.

disableHybridSearchQueryPlanOptimization?: boolean

Valeur de propriété

boolean

disableNonStreamingOrderByQuery

Désactivez la fonctionnalité de requête nonStreamingOrderBy dans les fonctionnalités de requête prises en charge. Valeur par défaut : false. Définissez la valeur true pour éviter l’erreur d’une ancienne passerelle qui ne prend pas en charge cette fonctionnalité.

disableNonStreamingOrderByQuery?: boolean

Valeur de propriété

boolean

enableQueryControl

Contrôle le comportement d’exécution des requêtes. Valeur par défaut : false. Si la valeur est false, la requête réessaie jusqu’à ce que les résultats soient prêts et maxItemCount atteints, ce qui peut prendre du temps pour les partitions volumineuses avec des données relativement petites. Si la valeur est true, analyse les partitions jusqu’à maxDegreeOfParallelism, ajoute les résultats à la mémoire tampon et renvoie ce qui est disponible. Si les résultats ne sont pas prêts, il renvoie une réponse vide.

enableQueryControl?: boolean

Valeur de propriété

boolean

enableScanInQuery

Autoriser l’analyse sur les requêtes qui n’ont pas pu être traitées comme l’indexation a été désactivée sur les chemins demandés. Valeur par défaut : false

En général, il est préférable d’éviter d’utiliser ce paramètre. Les analyses sont relativement coûteuses et prennent beaucoup de temps pour servir.

enableScanInQuery?: boolean

Valeur de propriété

boolean

forceQueryPlan

Ce paramètre force la requête à utiliser un plan de requête. Valeur par défaut : false

Remarque : cela désactive la prise en charge des jetons de continuation, même pour les requêtes de partition unique.

Pour les requêtes telles que les agrégats et la plupart des requêtes de partition croisée, cela se produit de toute façon. Toutefois, étant donné que la bibliothèque ne sait pas quel type de requête il s’agit jusqu’à ce que nous récupérions la première réponse, une certaine optimisation ne peut pas se produire avant plus tard.

Si ce paramètre est activé, il force le plan de requête pour la requête, ce qui enregistre certaines requêtes réseau et garantit que le parallélisme peut se produire. Utile lorsque vous savez que vous effectuez des requêtes inter-partitions ou agrégées.

forceQueryPlan?: boolean

Valeur de propriété

boolean

maxDegreeOfParallelism

Nombre maximal d’opérations simultanées qui exécutent le côté client pendant l’exécution de requêtes parallèles dans le service de base de données Azure Cosmos DB. Les valeurs négatives rendent le système décider automatiquement du nombre d’opérations simultanées à exécuter. Valeur par défaut : 0 (pas de parallélisme)

maxDegreeOfParallelism?: number

Valeur de propriété

number

maxItemCount

Nombre maximal d’éléments à retourner dans l’opération d’énumération. Par défaut : non défini (la charge utile définie par le serveur)

L’expiration de cette valeur peut généralement entraîner les changements de performances les plus importants de la requête.

Plus le nombre d’éléments est réduit, plus le premier résultat sera remis (pour les non-agrégats). Pour de grandes quantités, il faudra plus de temps pour traiter la requête, mais vous obtiendrez généralement un meilleur débit pour les requêtes volumineuses (c’est-à-dire, si vous avez besoin de 1 000 éléments avant de pouvoir effectuer d’autres actions, définissez maxItemCount sur 1000. Si vous pouvez commencer à faire du travail après les 100 premiers, définissez maxItemCount sur 100.)

maxItemCount?: number

Valeur de propriété

number

partitionKey

Limite la requête à une clé de partition spécifique. Valeur par défaut : non défini

L’étendue d’une requête à une seule partition peut être effectuée de deux façons :

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

L’ancien est utile lorsque le corps de la requête est hors de votre contrôle, mais que vous souhaitez toujours le restreindre à une seule partition. Exemple : requête spécifiée par l’utilisateur final.

partitionKey?: PartitionKey

Valeur de propriété

populateIndexMetrics

Activez le retour des métriques d’index dans les en-têtes de réponse. Valeur par défaut : false

populateIndexMetrics?: boolean

Valeur de propriété

boolean

populateQueryMetrics

Activez le retour des métriques de requête dans les en-têtes de réponse. Valeur par défaut : false

Utilisé pour le débogage de requêtes lentes ou coûteuses. Augmente également la taille de réponse et si vous utilisez une taille d’en-tête maximale faible dans Node.js, vous pouvez rencontrer des problèmes plus rapidement.

populateQueryMetrics?: boolean

Valeur de propriété

boolean

useIncrementalFeed

Remarque : envisagez d’utiliser changeFeed à la place.

Indique une demande de flux de modification. Doit être défini sur « Flux incrémentiel » ou omis dans le cas contraire. Valeur par défaut : false

useIncrementalFeed?: boolean

Valeur de propriété

boolean

vectorSearchBufferSize

Spécifie une taille de mémoire tampon maximale personnalisée pour stocker les résultats finaux pour les requêtes nonStreamingOrderBy. Cette valeur est ignorée si la requête inclut des clauses top/offset+limit.

vectorSearchBufferSize?: number

Valeur de propriété

number

Détails de la propriété héritée

abortSignal

abandonnerSignal pour passer à toutes les demandes réseau sous-jacentes créées par cet appel de méthode. Voir https://developer.mozilla.org/en-US/docs/Web/API/AbortController

exemple

Annuler une demande de lecture

import { CosmosClient } from "@azure/cosmos";

const endpoint = "https://your-account.documents.azure.com";
const key = "<database account masterkey>";
const client = new CosmosClient({ endpoint, key });

const { database } = await client.databases.createIfNotExists({ id: "Test Database" });

const { container } = await database.containers.createIfNotExists({ id: "Test Container" });

const controller = new AbortController();
const results = container.items.query("SELECT * from c", {
  abortSignal: controller.signal,
});
abortSignal?: AbortSignal

Valeur de propriété

AbortSignal

héritée deSharedOptions.abortSignal

bypassIntegratedCache

Définit si le cache intégré doit être contourné ou activé pour la requête dans le service Azure CosmosDB.

La valeur par défaut est false. Par défaut, le cache intégré est activé

bypassIntegratedCache?: boolean

Valeur de propriété

boolean

héritée deSharedOptions.bypassIntegratedCache

consistencyLevel

Niveau de cohérence requis par le client.

consistencyLevel?: string

Valeur de propriété

string

Hérité deSharedOptions.consistencyLevel

disableRUPerMinuteUsage

DisableRUPerMinuteUsage est utilisé pour activer/désactiver la capacité des unités de requête(RU)/minute pour traiter la requête si des unités de requête approvisionnées/seconde régulières sont épuisées.

disableRUPerMinuteUsage?: boolean

Valeur de propriété

boolean

Hérité deSharedOptions.disableRUPerMinuteUsage

excludedLocations

Exclut une ou plusieurs régions Azure pour l’opération.

Cette option n’est appliquée que lorsque enableEndPointDiscovery est défini sur true.

excludedLocations?: string[]

Valeur de propriété

string[]

Hérité deSharedOptions.excludedLocations

initialHeaders

(Cas d’usage avancé) En-têtes initiaux à démarrer lors de l’envoi de requêtes à Cosmos

initialHeaders?: CosmosHeaders

Valeur de propriété

héritée deSharedOptions.initialHeaders

maxIntegratedCacheStalenessInMs

Définit la valeur d’obsolescence associée à la requête dans le service Azure CosmosDB. Pour les demandes où l'<xref:com.azure.cosmos.ConsistencyLevel> est <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, les réponses du cache intégré ne sont pas garanties d’être plus staler que la valeur indiquée par ce maxIntegratedCacheStaleness. Lorsque le niveau de cohérence n’est pas défini, cette propriété est ignorée.

La valeur par défaut est Null

L’obsolescence du cache est prise en charge en millisecondes de granularité. Tout ce qui est inférieur à millisecondes est ignoré.

maxIntegratedCacheStalenessInMs?: number

Valeur de propriété

number

héritée deSharedOptions.maxIntegratedCacheStalenessInMs

priorityLevel

Niveau de priorité (faible/élevé) pour chaque requête. Les requêtes de faible priorité sont toujours limitées avant toutes les demandes de priorité élevée.

La valeur par défaut est Null. Par défaut, toutes les requêtes sont de priorité élevée

priorityLevel?: PriorityLevel

Valeur de propriété

héritée deSharedOptions.priorityLevel

sessionToken

Active/désactive l’obtention des statistiques relatives au quota de conteneurs de documents pour les demandes de lecture de conteneur de documents.

sessionToken?: string

Valeur de propriété

string

héritée deSharedOptions.sessionToken

throughputBucket

Débit Bucket pour une demande.

La valeur par défaut est Null. Dans ce cas, la demande peut utiliser 100% du débit de la partition.

Pour plus d’informations, consultez [Bucketing de débit Cosmos DB](https://aka.ms/cosmsodb-bucketing).
throughputBucket?: number

Valeur de propriété

number

Hérité deSharedOptions.throughputBucket