Мне нужен доступ к одному из элементов, хранящихся в базе данных Cosmos, но у меня нет значения ключа раздела, который теперь требуется для ReadDocumentAsync.Я использовал устаревший CreateDocumentQuery, но это заняло слишком много времени, чтобы вернуть ответ клиенту, запрашивающему этот запрос.
Проект выглядит следующим образом: я пытаюсь сохранить животных и связанные вложения в базе данных, котораяв них хранятся следующие параметры:
{
"nextId": "1",
"id": "2",
"predEnclosure": "true",
"maxCapacity": 10,
"currentCapacity": 0,
"animals": [],
}
В качестве predEnclosure у меня есть ключ разделения, и теоретически у него будет только идентификатор для доступа к корпусу.Я не уверен, существует ли другой метод для извлечения документов из контейнера.Это веб-API .NET Core, подключающийся к базе данных Cosmos.
public async Task<CustomHttpResponseMessage<dynamic>> GetEnclosure(string id)
{
try
{
Enclosure enclosure = await dbClient.ReadDocumentAsync<Enclosure>(
dbHandler.GetDocumentUri(id), options);
return new CustomHttpResponseMessage<dynamic>(HttpStatusCode.OK, enclosure);
}
catch (Exception e)
{
Console.WriteLine($"Could not get given animal! Error: {e.Message}");
return new CustomHttpResponseMessage<dynamic>(HttpStatusCode.NotFound, "Could not find the given enclosure!");
}
}
Выше будет сказано, что мне нужен ключ раздела для вызова этого метода.Я ожидал, что он вернет корпус из базы данных без использования ключа раздела.