Как удалить объект из Cosmos DB, не зная значения ключа раздела? ⇐ C#
-
Anonymous
Как удалить объект из Cosmos DB, не зная значения ключа раздела?
Если у меня нет значения ключа раздела, как мне удалить документ?
У меня есть id документа и имя свойства ключа раздела (в моем случае: type).
Я пробовал:
var docLink = UriFactory.CreateDocumentUri(имя базы данных, имя коллекции, идентификатор документа); вар соотв = client.DeleteDocumentAsync(docLink).Result; Получена ошибка: Для этой операции необходимо указать значение PartitionKey.
Пример документа:
{ "идентификатор": "AB12CD", "тип": "Компания", «Адрес»: «Тестовая улица, 123». } Я пытался получить значение ключа раздела для определенного идентификатора документа
Использование кода C#...
Я пытался прочитать документ по его id, а затем получить значение type, но получил ошибку: InvalidOperationException: для этого необходимо указать значение PartitionKey операция. для использования следующего кода.
var ответ = client.ReadDocumentAsync(UriFactory.CreateDocumentUri(имябазы данных, имя коллекции, идентификатор)).Result; Я также попробовал межраздельный запрос, попробовав:
FeedOptions queryOptions = новые FeedOptions { MaxItemCount = 10 }; queryOptions.EnableCrossPartitionQuery = true; var queryString = "SELECT * FROM c WHERE c.id= '" + id + "'"; var QueryInSql = client.CreateDocumentQuery( documentCollectionUri,, queryOptions).AsDocumentQuery(); результат вар = QueryInSql.ExecuteNextAsync().Result; res = result.ToList(); //если в результате ничего нет, список будет пустым ^ возвращает пустой список. Если я проверю портал Azure, я увижу, что документ с этим конкретным идентификатором действительно существует в базе данных.
Если у меня нет значения ключа раздела, как мне удалить документ?
У меня есть id документа и имя свойства ключа раздела (в моем случае: type).
Я пробовал:
var docLink = UriFactory.CreateDocumentUri(имя базы данных, имя коллекции, идентификатор документа); вар соотв = client.DeleteDocumentAsync(docLink).Result; Получена ошибка: Для этой операции необходимо указать значение PartitionKey.
Пример документа:
{ "идентификатор": "AB12CD", "тип": "Компания", «Адрес»: «Тестовая улица, 123». } Я пытался получить значение ключа раздела для определенного идентификатора документа
Использование кода C#...
Я пытался прочитать документ по его id, а затем получить значение type, но получил ошибку: InvalidOperationException: для этого необходимо указать значение PartitionKey операция. для использования следующего кода.
var ответ = client.ReadDocumentAsync(UriFactory.CreateDocumentUri(имябазы данных, имя коллекции, идентификатор)).Result; Я также попробовал межраздельный запрос, попробовав:
FeedOptions queryOptions = новые FeedOptions { MaxItemCount = 10 }; queryOptions.EnableCrossPartitionQuery = true; var queryString = "SELECT * FROM c WHERE c.id= '" + id + "'"; var QueryInSql = client.CreateDocumentQuery( documentCollectionUri,, queryOptions).AsDocumentQuery(); результат вар = QueryInSql.ExecuteNextAsync().Result; res = result.ToList(); //если в результате ничего нет, список будет пустым ^ возвращает пустой список. Если я проверю портал Azure, я увижу, что документ с этим конкретным идентификатором действительно существует в базе данных.
Мобильная версия