Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
605 views
in Technique[技术] by (71.8m points)

azure - CosmosDB - Correct Partition Key

Every JSON file I upload to the collection is in the following format:

{
  "Blocks": [
    {
      "radarID": "51p01", ...
    },
    {
      "radarID": "51p02", ...
    }
  ]
}

The partition key I use is '/Blocks/radarID', but it does not work. I guess radarID is not an immediate child of Blocks, it is in a list. So do you know what I should write as my partition key?

Thanks.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Partition Key has to be a single value for each document, it can't be a field in sub-array. Partition Key is used to determine which database node will host your document, and it wouldn't be possible if you specified multiple values, of course.

If your single document contains data from multiple entities, and you will query those entities separately, it might make sense to split your documents per entity. If all those "radars" are related to some higher level entity, use that entity ID as partition key.

Bottom line: partition key should be defined by your query patterns, so that the most popular queries are executed against a single partition.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...