组合多个键以在 Cosmos db 中创建合成分区键

Combining multiple keys to create a Synthetic partition key in Cosmos db

我正在使用以下代码在 Cosmos Db 中上传我的文档,我需要一个分区键,我必须通过组合两个键来创建它。在这种情况下,它将是 TypeId 和 Cvalue。我想知道如何在下面的代码中创建合成分区键。谢谢

var content = JsonConvert.DeserializeObject<JObject>( lines );
var client = new DocumentClient( new Uri( DbInstance ),Key );
await client.CreateDocumentAsync(UriFactory.CreateDocumentCollectionUri(
                Database, Collection ),
                content);

    "Classes": {
        "Subjects": {
          "Name": "testA",
          "TypeId": "AS88QW",
          "Public": "No"
        },
        "Sections": {
          "Scopes": true,
          "CValue": [12,12,1]
        }
      }

您不能直接将多个不同的属性指定为组合的合成分区键。您需要自己将其组合成另一个 属性。在您的情况下,您将创建一个新的 属性,它结合了 Classes.Subjects.TypeIdClasses.Subjects.CValue。然后可以将新的 属性(无论您决定如何称呼它)指定为您的分区键。

请注意,这里没有任何自动操作:您需要在创建文档时创建这个新的 属性。你需要弄清楚如何表示数组之类的东西(你的CValue 属性)——你想如何把它变成分区键值的一部分。

您可以找到有关合成分区键的更多信息here