有人能够在 Azure cosmos db 模拟器上设置分层分区键吗?我尝试关注 Microsoft 的这篇文章 -
https://learn.microsoft.com/en-us/azure/cosmos-db/hierarchical-partition-keys?tabs=net-v3%2Cbicep
这就是我到目前为止所做的 -
我没有找到设置分层分区键的选项。
新容器创建屏幕的屏幕截图 -
我刚刚下载了最新版本的模拟器并使用
/EnablePreview
标志启动它。
不幸的是,根据 发行说明,捆绑的数据浏览器的最后一次更新是在 2022 年 5 月 - 这早于将此功能添加到 数据浏览器代码库。
但后端的东西似乎工作正常。
如果您连接到它并以编程方式执行此操作,则使用分层分区键创建集合可以正常工作。
例如根据文档中的示例使用以下代码确实有效
using Microsoft.Azure.Cosmos;
//well known Emulator connection string
using CosmosClient client = new(
"https://localhost:8081",
"C2y6yDjf5/R+ob0N8A7Cgv30VRDJIWEHLM+4QDU5DE2nQ9nDuVTqobD4b8mGGyPMbIZnqyMsEcaGQy67XIw/Jw==");
;
await client.CreateDatabaseIfNotExistsAsync("soquestion");
var database = client.GetDatabase("soquestion");
List<string> subpartitionKeyPaths = new List<string> {
"/TenantId",
"/UserId",
"/SessionId"
};
// Create a container properties object
ContainerProperties containerProperties = new ContainerProperties(
id: "hierPKTest",
partitionKeyPaths: subpartitionKeyPaths
);
// Create a container that's subpartitioned by TenantId > UserId > SessionId
Container container = await database.CreateContainerIfNotExistsAsync(containerProperties, throughput: 400);
var item = new
{
id = "f7da01b0-090b-41d2-8416-dacae09fbb4a",
TenantId = "Microsoft",
UserId = "8411f20f-be3e-416a-a3e7-dcd5a3c1f28b",
SessionId = "0000-11-0000-1111"
};
// Specify the full partition key path when creating the item
PartitionKey partitionKey = new PartitionKeyBuilder()
.Add(item.TenantId)
.Add(item.UserId)
.Add(item.SessionId)
.Build();
// Create the item in the container
var createResponse = await container.CreateItemAsync(item, partitionKey);
Console.WriteLine("Done");
尽管我想您可以取消通过数据浏览器与这些文档交互的任何前景,直到更新为止。也许可以克隆 cosmos-explorer 存储库并在本地构建它以连接到模拟器端点以访问最新和最好的功能,但这不是我探索做的事情。