mongoDB - Collation
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mongoDB - Collation相关的知识,希望对你有一定的参考价值。
参考技术ACollation特性(排序规则) 是mongoDB 3.4 版本新增的。 允许MongoDB的用户根据不同的语言定制排序规则。
排序规则有如下的字段属性
locale字段是强制性必选参数;所有其他排序规则字段都是可选的。
国家地区语言设置, 要指定简单的二进制比较,将locale 值设定为 "simple" 即可
具体local 及国家地区语言对照表如下
使用语法, @collation=<variant> 可选
可选参数, 表示要执行的比较级别。有如下几种参数值
可选参数,当strength 参数为1和2 时 该参数标识是否支持大小写比较
如果caseLevel =true,表示支持大小写比较
如果caseLevel =false , 表示不支持大小写比较
Flag that determines whether to include case comparison at strength level 1 or 2
可选参数 在三级比较时 确定大小写差异排序顺序的字段
可选参数,确定是将数字字符串作为数字还是字符串进行比较的标志, 默认值为fasle
如果 numericOrdering= true,表示将数字字符串作为数字比较,
例如,“10”大于“2”
反之,numericOrdering= false,则作为字符串进行比较。例如,“10”小于“2”
局限
示例:
// 设置排序后
结果:
可选参数。确定排序规则是否应将空格和标点符号视为基本字符以进行比较的字段。
可选参数, 当 alternate参数是 "shifted"时,确定哪些字符被视为可忽略的字段
当alternate= "non-ignorable"时, 该参数不生效
可选参数,确定带有变音符号的字符串是否从字符串后面排序的标志,例如某些法语字典排序。 如果为true,请从后到前进行比较。 如果为false,则从前到后进行比较。 默认值为false
可选参数。确定是否检查文本是否需要规范化并执行规范化的标志。通常,大多数文本不需要这种规范化处理。 如果为true,检查是否完全规范化并执行规范化以比较文本。 如果为false,则不检查。 默认值为fasle
Collation 参数中,locale 是必选参数,其他的都是可选参数,以下参数默认在所有语言环境中(locales)都是一致的:
下图是在不同locale 参数中,其他可选参数的默认值,供参考
支持排序规则的操作指指令如下图所示
使用示例
对于索引前缀键不是字符串、数组和嵌入文档的复合索引,指定不同排序规则的操作仍然可以使用索引来支持对索引前缀键的比较。
参考文档: https://www.mongodb.com/docs/manual/reference/collation/
以上是关于mongoDB - Collation的主要内容,如果未能解决你的问题,请参考以下文章