【问题标题】:enforce case-insensitive value for unique key constraint in cosmosDB?对 cosmosDB 中的唯一键约束强制执行不区分大小写的值?
【发布时间】:2021-04-17 00:11:29
【问题描述】:

我们有一个 sql 容器。我们希望对特定属性强制执行不区分大小写的唯一约束(例如,“名称”。如果文档的名称是“ALICE”,则该逻辑分区中的其他文档不应将“alice”作为名称)。 一种解决方案可能是引入另一个属性 LowerCaseName 并在路径 /LowerCaseName 上强制执行本机支持的唯一键配置。每次更新 Name 时,我们都会确保 LowerCaseName 在同一个请求中始终更新为 Name 的小写版本。

我不确定这是否是解决此问题的最佳做法?谢谢。

public MyDocumentModel
{
    string Name {get; set;}

    string LowerCaseName {get; set;}
}

【问题讨论】:

    标签: azure-cosmosdb unique-constraint azure-cosmosdb-sqlapi unique-key


    【解决方案1】:

    来自文档here

    在 Azure Cosmos DB 的 SQL (Core) API 中,项目存储为 JSON 值。 这些 JSON 值区分大小写。当您选择房产作为 唯一键,您可以为该属性插入区分大小写的值。 例如,如果您在 name 属性上定义了唯一键, “Gaby”与“gaby”不同,您可以将两者都插入 容器。

    基于此,我相信您使用第二个属性来强制执行唯一密钥的方法是正确的。

    【讨论】:

    • 谢谢。我也相信我的方法会奏效。如果有更简单的解决方案,只是想集思广益。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-12-25
    • 2013-05-30
    • 1970-01-01
    • 2020-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多