Поделиться через


FeedOptions interface

Параметры веб-канала и методы запроса.

Extends

Свойства

accessCondition

Условия, связанные с запросом.

bufferItems

Включите буферизацию дополнительных элементов во время запросов. Значение по умолчанию — false

Это приведет к буферизации дополнительной страницы за раз (умноженной на maxDegreeOfParallelism) с сервера в фоновом режиме. Это повышает задержку, извлекая страницы до того, как они понадобятся клиенту. Если вы очищаете все результаты с сервера, например .fetchAll, обычно это следует включить. Если вы извлекаете только одну страницу за раз с помощью маркера продолжения, этого следует избегать. Если вы очищаете несколько страниц, но не весь результирующий набор, это может помочь сократить задержку, но увеличит общее количество единиц запросов в секунду, используемых для обслуживания всего запроса (так как некоторые страницы будут извлечены несколько раз).

continuation

Непрозрачный маркер для продолжения перечисления. По умолчанию: undefined

continuationToken

Непрозрачный маркер для продолжения перечисления. По умолчанию: undefined

continuationTokenLimitInKB

Ограничивает размер маркера продолжения в ответе. По умолчанию: undefined

Маркеры продолжения содержат необязательные данные, которые можно удалить из сериализации перед записью в заголовок. По умолчанию мы ограничиваем это значение до 1 КБ, чтобы избежать длинных заголовков (Node.js имеет глобальное ограничение на размер заголовка). Пользователь может задать это поле, чтобы разрешить более длинные заголовки, что может помочь серверной части оптимизировать выполнение запросов".

enableScanInQuery

Разрешить сканирование запросов, которые не могли быть обработаны в качестве индексирования, было отказано в запрошенных путях. Значение по умолчанию — false

Как правило, рекомендуется избегать использования этого параметра. Сканирование является относительно дорогим и занимает много времени.

forceQueryPlan

Этот параметр заставляет запрос использовать план запроса. Значение по умолчанию — false

Примечание. Это приведет к отключению поддержки маркеров продолжения даже для запросов с одним разделом.

Для запросов, таких как статистические выражения и большинство межсекционных запросов, это происходит в любом случае. Тем не менее, так как библиотека не знает, какой тип запроса это, пока мы не вернемся к первому ответу, некоторая оптимизация не может произойти позже.

Если этот параметр включен, будет принудительно выполнен план запроса, что позволит сохранить некоторые сетевые запросы и обеспечить возможность параллелизма. Полезно, если вы знаете, что выполняете межсекционные или статистические запросы.

maxDegreeOfParallelism

Максимальное количество параллельных операций, выполняемых на стороне клиента во время параллельного выполнения запросов в службе базы данных Azure Cosmos DB. Отрицательные значения позволяют системе автоматически определять количество параллельных операций для выполнения. По умолчанию: 0 (без параллелизма)

maxItemCount

Максимальное количество элементов, возвращаемых в операции перечисления. По умолчанию: undefined (сервер будет определять полезные данные)

Истечение срока действия с этим значением обычно может привести к наибольшим изменениям производительности запроса.

Чем меньше количество элементов, тем быстрее будет доставлен первый результат (для неарегированных выражений). Для больших объемов обработка запроса займет больше времени, но обычно вы получаете лучшую пропускную способность для больших запросов (т. е. если вам нужно 1000 элементов, прежде чем вы сможете выполнять другие действия, установите значение maxItemCount 1000. Если вы можете начать работу после первых 100, задайте значение maxItemCount 100.)

partitionKey

Ограничивает запрос определенным ключом секции. По умолчанию: undefined

Определение области запроса к одной секции можно выполнить двумя способами:

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

Первый вариант полезен, если текст запроса находится вне вашего контроля, но вы по-прежнему хотите ограничить его одной секцией. Пример: запрос, указанный пользователем.

populateIndexMetrics

Включите возвращаемые метрики индекса в заголовках ответов. Значение по умолчанию — false

populateQueryMetrics

Включите возвращаемые метрики запроса в заголовках ответов. Значение по умолчанию — false

Используется для отладки медленных или дорогостоящих запросов. Кроме того, увеличивается размер ответа, и если вы используете низкий максимальный размер заголовка в Node.js, вы можете быстрее столкнуться с проблемами.

useIncrementalFeed

Примечание. Вместо этого рекомендуется использовать changeFeed.

Указывает запрос на канал изменений. Должно быть задано значение "Добавочный веб-канал" или пропущено в противном случае. Значение по умолчанию — false

Унаследованные свойства

abortSignal

abortSignal для передачи всем базовым сетевым запросам, созданным этим вызовом метода. См. раздел https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Пример

Отмена запроса на чтение

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

(Расширенный вариант использования) Начальные заголовки, с которыми следует начинать при отправке запросов в Cosmos

maxIntegratedCacheStalenessInMs

Задает значение устаревание, связанное с запросом в службе Azure CosmosDB. Для запросов, где <xref:com.azure.cosmos.ConsistencyLevel> имеет значение <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> или <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, ответы из интегрированного кэша гарантированно не будут устаревшими, чем значение, указанное параметром maxIntegratedCacheStaleness. Если уровень согласованности не задан, это свойство игнорируется.

Значение по умолчанию — NULL

Устаревание кэша поддерживается в миллисекундах. Все, что меньше миллисекунда, будет игнорироваться.

priorityLevel

Уровень приоритета (низкий или высокий) для каждого запроса. Запросы с низким приоритетом всегда регулируются перед любыми запросами с высоким приоритетом.

Значение по умолчанию равно null. По умолчанию все запросы имеют высокий приоритет

sessionToken

Включает или отключает получение статистики, связанной с квотой контейнера документов, для запросов на чтение контейнера документов.

Сведения о свойстве

accessCondition

Условия, связанные с запросом.

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

Значение свойства

{ condition: string, type: string }

bufferItems

Включите буферизацию дополнительных элементов во время запросов. Значение по умолчанию — false

Это приведет к буферизации дополнительной страницы за раз (умноженной на maxDegreeOfParallelism) с сервера в фоновом режиме. Это повышает задержку, извлекая страницы до того, как они понадобятся клиенту. Если вы очищаете все результаты с сервера, например .fetchAll, обычно это следует включить. Если вы извлекаете только одну страницу за раз с помощью маркера продолжения, этого следует избегать. Если вы очищаете несколько страниц, но не весь результирующий набор, это может помочь сократить задержку, но увеличит общее количество единиц запросов в секунду, используемых для обслуживания всего запроса (так как некоторые страницы будут извлечены несколько раз).

bufferItems?: boolean

Значение свойства

boolean

continuation

Предупреждение

Теперь этот API является нерекомендуемым.

Use continuationToken instead.

Непрозрачный маркер для продолжения перечисления. По умолчанию: undefined

continuation?: string

Значение свойства

string

continuationToken

Непрозрачный маркер для продолжения перечисления. По умолчанию: undefined

continuationToken?: string

Значение свойства

string

continuationTokenLimitInKB

Ограничивает размер маркера продолжения в ответе. По умолчанию: undefined

Маркеры продолжения содержат необязательные данные, которые можно удалить из сериализации перед записью в заголовок. По умолчанию мы ограничиваем это значение до 1 КБ, чтобы избежать длинных заголовков (Node.js имеет глобальное ограничение на размер заголовка). Пользователь может задать это поле, чтобы разрешить более длинные заголовки, что может помочь серверной части оптимизировать выполнение запросов".

continuationTokenLimitInKB?: number

Значение свойства

number

enableScanInQuery

Разрешить сканирование запросов, которые не могли быть обработаны в качестве индексирования, было отказано в запрошенных путях. Значение по умолчанию — false

Как правило, рекомендуется избегать использования этого параметра. Сканирование является относительно дорогим и занимает много времени.

enableScanInQuery?: boolean

Значение свойства

boolean

forceQueryPlan

Этот параметр заставляет запрос использовать план запроса. Значение по умолчанию — false

Примечание. Это приведет к отключению поддержки маркеров продолжения даже для запросов с одним разделом.

Для запросов, таких как статистические выражения и большинство межсекционных запросов, это происходит в любом случае. Тем не менее, так как библиотека не знает, какой тип запроса это, пока мы не вернемся к первому ответу, некоторая оптимизация не может произойти позже.

Если этот параметр включен, будет принудительно выполнен план запроса, что позволит сохранить некоторые сетевые запросы и обеспечить возможность параллелизма. Полезно, если вы знаете, что выполняете межсекционные или статистические запросы.

forceQueryPlan?: boolean

Значение свойства

boolean

maxDegreeOfParallelism

Максимальное количество параллельных операций, выполняемых на стороне клиента во время параллельного выполнения запросов в службе базы данных Azure Cosmos DB. Отрицательные значения позволяют системе автоматически определять количество параллельных операций для выполнения. По умолчанию: 0 (без параллелизма)

maxDegreeOfParallelism?: number

Значение свойства

number

maxItemCount

Максимальное количество элементов, возвращаемых в операции перечисления. По умолчанию: undefined (сервер будет определять полезные данные)

Истечение срока действия с этим значением обычно может привести к наибольшим изменениям производительности запроса.

Чем меньше количество элементов, тем быстрее будет доставлен первый результат (для неарегированных выражений). Для больших объемов обработка запроса займет больше времени, но обычно вы получаете лучшую пропускную способность для больших запросов (т. е. если вам нужно 1000 элементов, прежде чем вы сможете выполнять другие действия, установите значение maxItemCount 1000. Если вы можете начать работу после первых 100, задайте значение maxItemCount 100.)

maxItemCount?: number

Значение свойства

number

partitionKey

Ограничивает запрос определенным ключом секции. По умолчанию: undefined

Определение области запроса к одной секции можно выполнить двумя способами:

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

Первый вариант полезен, если текст запроса находится вне вашего контроля, но вы по-прежнему хотите ограничить его одной секцией. Пример: запрос, указанный пользователем.

partitionKey?: PartitionKey

Значение свойства

populateIndexMetrics

Включите возвращаемые метрики индекса в заголовках ответов. Значение по умолчанию — false

populateIndexMetrics?: boolean

Значение свойства

boolean

populateQueryMetrics

Включите возвращаемые метрики запроса в заголовках ответов. Значение по умолчанию — false

Используется для отладки медленных или дорогостоящих запросов. Кроме того, увеличивается размер ответа, и если вы используете низкий максимальный размер заголовка в Node.js, вы можете быстрее столкнуться с проблемами.

populateQueryMetrics?: boolean

Значение свойства

boolean

useIncrementalFeed

Примечание. Вместо этого рекомендуется использовать changeFeed.

Указывает запрос на канал изменений. Должно быть задано значение "Добавочный веб-канал" или пропущено в противном случае. Значение по умолчанию — false

useIncrementalFeed?: boolean

Значение свойства

boolean

Сведения об унаследованном свойстве

abortSignal

abortSignal для передачи всем базовым сетевым запросам, созданным этим вызовом метода. См. раздел https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Пример

Отмена запроса на чтение

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

Значение свойства

AbortSignal

Наследуется отSharedOptions.abortSignal

initialHeaders

(Расширенный вариант использования) Начальные заголовки, с которыми следует начинать при отправке запросов в Cosmos

initialHeaders?: CosmosHeaders

Значение свойства

Наследуется отSharedOptions.initialHeaders

maxIntegratedCacheStalenessInMs

Задает значение устаревание, связанное с запросом в службе Azure CosmosDB. Для запросов, где <xref:com.azure.cosmos.ConsistencyLevel> имеет значение <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> или <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, ответы из интегрированного кэша гарантированно не будут устаревшими, чем значение, указанное параметром maxIntegratedCacheStaleness. Если уровень согласованности не задан, это свойство игнорируется.

Значение по умолчанию — NULL

Устаревание кэша поддерживается в миллисекундах. Все, что меньше миллисекунда, будет игнорироваться.

maxIntegratedCacheStalenessInMs?: number

Значение свойства

number

Наследуется отSharedOptions.maxIntegratedCacheStalenessInMs

priorityLevel

Уровень приоритета (низкий или высокий) для каждого запроса. Запросы с низким приоритетом всегда регулируются перед любыми запросами с высоким приоритетом.

Значение по умолчанию равно null. По умолчанию все запросы имеют высокий приоритет

priorityLevel?: PriorityLevel

Значение свойства

Наследуется отSharedOptions.priorityLevel

sessionToken

Включает или отключает получение статистики, связанной с квотой контейнера документов, для запросов на чтение контейнера документов.

sessionToken?: string

Значение свойства

string

Наследуется отSharedOptions.sessionToken