【问题标题】:Combining multiple keys to create a Synthetic partition key in Cosmos db在 Cosmos db 中组合多个键以创建合成分区键
【发布时间】:2021-09-01 01:05:44
【问题描述】:

我正在使用下面的代码在 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]
        }
      }

【问题讨论】:

  • 大卫说的很对。

标签: c# azure azure-cosmosdb


【解决方案1】:

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

请注意,这里没有任何自动操作:您需要在创建文档时创建此新属性。而且您需要弄清楚如何表示数组之类的东西(您的 CValue 属性) - 您希望如何将其转换为分区键值的一部分。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2017-12-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多