Удалите документы из Cosmos с помощью запроса без указания ключа раздела - PullRequest
1 голос
/ 05 ноября 2019

Я пытаюсь создать хранимую процедуру для удаления документов в Cosmos Db с помощью запроса. Как только запрос вернет документы, я бы хотел, чтобы все документы были удалены.

Я попытался использовать скрипт с с этого сайта , но для этого требуется указать один ключ раздела. Моя коллекция Cosmos имеет отдельный ключ раздела для каждого документа, поэтому он не будет работать

Это пример запроса, который я хотел бы выполнить

SELECT c.currentTime, c.pastTime 
FROM C 
WHERE c.currentTime < c.pastTime

Если это удовлетворяет, я хотел быудалить все результаты этого запроса.

Есть ли способ создать хранимый процесс или изменить тот, который указан на веб-сайте, чтобы он просматривал всю коллекцию вместо указания одного ключа раздела?

1 Ответ

1 голос
/ 06 ноября 2019

Есть ли способ создать хранимый процесс или изменить тот, который предусмотрен на веб-сайте, чтобы он просматривал всю коллекцию вместо указания одного ключа раздела?

Быстрый ответ - нетсм. некоторые официальные заявления:

1. Я отвечал на подобные случаи раньше, все они хотят избежать такого требования ключа раздела при выполнении SP. Однако этого нельзя избежать.

Azure Cosmos DB запрашивает ключ раздела для хранимой процедуры

Cosmos DB Хранимая процедура не выполняется без PartitionKey

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

2. Вышеуказанный оператор и ссылка были изменены в ниже новый документ :

enter image description here

3. Вы можете последовать официальному предложению, чтобы получить представление о Bulk Executor Lib SDK. Я нашел BulkDelete функцию в этом исходном коде , пожалуйста попробуйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...