azure-cosmosdb - 对 cosmosDB 中的唯一键约束强制执行不区分大小写的值?
问题描述
我们有一个 sql 容器。我们想对特定属性强制执行不区分大小写的唯一约束(例如,“名称”。如果文档的名称为“ALICE”,则该逻辑分区中的其他文档不应将“alice”作为名称)。一种解决方案可能是引入另一个属性 LowerCaseName 并在路径 /LowerCaseName 上强制执行本机支持的唯一键配置。每次更新 Name 时,我们确保 LowerCaseName 在同一个请求中始终更新为 Name 的小写版本。
我不确定这是否是解决此问题的最佳做法?谢谢。
public MyDocumentModel
{
string Name {get; set;}
string LowerCaseName {get; set;}
}
解决方案
从文档中here
:
在 Azure Cosmos DB 的 SQL (Core) API 中,项目存储为 JSON 值。 这些 JSON 值区分大小写。当您选择一个属性作为唯一键时,您可以为该属性插入区分大小写的值。 例如,如果您在 name 属性上定义了唯一键,则“Gaby”与“gaby”不同,您可以将两者都插入到容器中。
基于此,我相信您使用第二个属性来强制执行唯一密钥的方法是正确的。
推荐阅读
- javascript - 为什么我们只在 if 条件之间使用 return 语句?
- linux - Yocto SecureBoot 构建不创建签名图像
- javascript - 自动选中复选框
- javascript - 解构赋值符号
- python - url 超出最大重试次数:'与 api.telegram.org 的连接超时。(连接超时=5.0)'))
- javascript - Bootstrap ICheck-Helper 事件在 jquery 步骤插件中不起作用
- javascript - React Native 中验证函数的意外结果
- php - 如何将服务管理器注入 Zend Framework 3 中的模型文件
- ios - 调用 'sorted(by:)' 的结果未使用
- julia - Julia:每当刷新路由时调用一个函数?