我创建了一个容器来存储客户的用户信息。分区键是 customerId。我想读取 customerId = X 的逻辑分区中的所有项目,这应该返回 customerId = X 的所有用户记录。.NET SDK 中的 CosmosClient 是否提供此类 API?
例子 :
class User
{
string customerId,
string userId,
string userName
}
Run Code Online (Sandbox Code Playgroud)
Ank*_*jay 10
假设您使用 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;
Run Code Online (Sandbox Code Playgroud)