如何知道分区密钥在Cosmos DB中是否正常工作

时间:2020-04-06 16:18:45

标签: azure-cosmosdb

我正在尝试创建一个测试Cosmos,并且对分区键有些困惑。具体来说,我担心的是,当我向容器中添加项目时,在分区列下看不到任何值。

我要做的是设置一个可获取文本值的网络爬虫。从该文件中,我选择“源”和“日期”作为我的分区列,这样我就可以分配一些均匀的分区。

enter image description here

然后我创建了一个Cosmos数据库并加载了一些测试值:

enter image description here

在设置过程中,我写了(减去引号)“ / Source / Date”,并且我假设在上传该项目之后,我会看到这些值已被填充。但是,看起来这个测试容器正在寻找一列称为“ / Source / Date”。

我做了一个测试,我只使用“ Source”作为分区键,它会自动填充该值:

enter image description here

我在这里想念什么吗?我只能将一列用作分区键吗?如果在第一个屏幕截图中看到“ / Source / News”为空,是否表示没有“分区键”?

我还进行了另一个测试,该测试具有唯一键,并且在不能输入重复的“源/日期”值的情况下也能正常工作,但是当我尝试在容器要求输入逗号的字段中输入逗号时分区键出现错误。

任何帮助都会有所帮助。

谢谢

1 个答案:

答案 0 :(得分:3)

从该文件中,我选择“源”和“日期”作为我的分区 列,这样我的分区分布就比较均匀。

我相信您对分区键有些误解。

当前,您无法在两个属性上指定分区键。只能在JSON文档中的单个属性上创建分区键。

本质上,当您指定分区键时,就是在文档中指定JSON属性的路径。

例如,考虑到您将分区键设置为Source/Date,文档将类似于以下内容:

{
  "id": "your document id",
  "Source": {
    "Date": "some date value"
  },
  "Url": "blah blah",
  "Text": "more blah blah",
  "Formal_Source": "even more blah blah"
}