#azure-cosmosdb
Вопрос:
Я создал контейнер для хранения информации о пользователях для клиентов. Ключом раздела является идентификатор пользователя. Я хочу прочитать все элементы в логическом разделе с идентификатором пользователя = X, который должен возвращать все записи пользователей с идентификатором пользователя = X. Доступен ли такой API в CosmosClient в .NET SDK?
Пример :
class User
{
string customerId,
string userId,
string userName
}
Комментарии:
1. Пожалуйста, помните о тегах — я удалил несколько несвязанных тегов (например
cosmos
, не имеет никакого отношения к Cosmos DB и не имеетcontainers
). Что касается дополнительной информации, необходимой при редактировании вашего вопроса: Пожалуйста, покажите немного примеров данных, ваш запрос/код, выходные данные и ошибки/проблемы, с которыми вы сталкиваетесь.
Ответ №1:
Предполагая, что вы используете SQL API, вы можете использовать Azure Cosmos DB SDK для поиска всех пользователей для вашего ключа раздела. Вот пример кода:
var client = new CosmosClient("COSMOS_CONNECTION_STRING");
var container = client.GetContainer("DATABASE_NAME", "CONTAINER_NAME");
var queryDefinition = new QueryDefinition("SELECT * FROM c");
var iterator = container.GetItemQueryIterator<User>(queryDefintion,
requestOptions: new QueryRequestOptions()
{
PartitionKey = new PartitionKey("CUSTOMER_ID")
});
var results = new List<User>();
while (iterator.HasMoreResults)
{
var result = await iterator.ReadNextAsync();
results.AddRange(result.Resource);
}
return results;
Комментарии:
1. Обратите внимание, что вопрос ОП, как написано, не по теме: он не содержит кода, выходных данных или конкретных вопросов; это было общее требование, и я предложил, что им нужно добавить, в своих комментариях. Лучше всего не просто писать код для кого-то, когда он сначала не представил свою собственную работу.
2. Привет @DavidMakogon, спасибо за ваш ответ. Причина, по которой я ответил на этот вопрос, заключается в том, что я чувствовал, что получение всех документов для ключа раздела может быть немного сложным, особенно для начинающих. Учитывая, что я уже ответил на вопрос, что вы предлагаете мне сделать?