Как удалить все элементы в контейнере из базы данных космоса? - PullRequest
0 голосов
/ 26 октября 2019

Я хочу прочитать элементы из базы данных Azure Cosmos и удалить все

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

this.container.ReadItemAsync(*);

this.container.DeleteItemAsync().All();

Спасибо за любую помощь!

Так выглядит мой контейнер This is how my container looks

1 Ответ

0 голосов
/ 26 октября 2019

Код, который вы показали, недействителен. То есть вы не можете просто так сказать «удалить все документы». И ReadItemAsync() - это прямое чтение документа, основанное на идентификаторе документа (и ключе раздела).

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

Вы также можете удалить и заново создать свою коллекцию (которая фактически удаляетвсе содержимое коллекции).

Cosmos DB также имеет библиотеку Bulk Executor (массовые вставки, массовые обновления, массовые удаления). Возможно, это сработает для вас и избавит вас от необходимости удалять и заново создавать вашу коллекцию (просто имейте в виду, что, если у вас много документов, вы можете столкнуться с проблемами регулирования на основе ваших блоков запросов).

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