首页 > 解决方案 > Cosmos DB中collection的id是如何选择的?

问题描述

我是 CosmosDB 的新手。我创建了一个集合并在那里添加了一个具有id字段和一些文本值的对象。id我的对象中的字段设置为一些随机的 uuid。

{
    "id": "2cdbf85b-43cf-415a-bfec-512c0ce2bf4b",
    "someTextValue": "my text value",
}

现在在数据库中,我看到 CosmosDb 创建了我的实体并为其分配了一个id与我在对象中提供的相同的值。

在此处输入图像描述

添加此实体时,我设置disableAutomaticIdGenerationfalse

client.createDocument(collectionLink, myEntity, null, false)

有人能告诉我为什么id数据库实体保持不变吗?我希望有一个随机生成的id字段。

标签: azure-cosmosdb

解决方案


id 已经随机生成,因为您设置disableAutomaticIdGenerationFalse.

在下图中,第一个id是文档的 id,第二个/id是分区键值。

在此处输入图像描述

由于您将分区键设置为/id,因此 id 值"2cdb...."是该文档的分区键值的值。

让我说,如果您将分区键设置为 eg /name,那么您在数据资源管理器中显示的文档将如下所示:

在此处输入图像描述


推荐阅读