对于 CosmosDB 不区分大小写的查询:使用重复的大写字段还是 StringEquals?

For CosmosDB case-insensitive queries: use duplicate uppercased field or StringEquals?

假设您正在尝试查看用户名是否可用于您的数据库,并且当用户名与原始大小写一起显示时,为了检查可用性,您希望检查不区分大小写。

执行此操作的旧方法是在您的模式中有一个额外的字段,即 uppercasedUsername 并根据它进行查找,依靠索引快速找到它。

我最近在 June 2020 中看到他们改进了一些系统函数的性能,例如 StringEquals,其中包括不区分大小写的查找,但我不清楚这些函数是依赖于索引还是只是做了一些性能改进. StringEquals 的性能是否可与大规模查找重复的大写字段相媲美?

是的,这些依赖于索引。成本只比您要复制数据并自己做的成本略高。