3.4版的新功能。
归类允许用户为字符串比较指定特定于语言的规则,例如字母大写和重音符号的规则。
您可以为集合或视图,索引或支持归类的特定操作指定归类。
整理文档具有以下字段:
指定排序规则时,该locale
字段为必填字段;所有其他排序规则字段都是可选的。有关字段的说明,请参见整理文档。
默认排序规则参数值取决于您指定的语言环境。有关默认排序规则参数及其关联的语言环境的完整列表,请参阅“ 排序规则默认参数”。
领域 | 类型 | 描述 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
locale |
串 | ICU语言环境。有关支持的语言环境的列表,请参见支持的语言和语言环境。 要指定简单的二进制比较,请指定的 |
||||||||||||
strength |
整数 | 可选的。要执行的比较级别。对应于ICU比较级别。可能的值为:
有关 详细信息,请参见ICU整理:比较级别。 |
||||||||||||
caseLevel |
布尔值 | 可选的。用于确定是否在 如果
如果是 有关更多信息,请参阅ICU整理:案例级别。 |
||||||||||||
caseFirst |
串 | 可选的。在第三级比较期间确定大小写差异的排序顺序的字段。 可能的值为:
|
||||||||||||
numericOrdering |
布尔值 | 可选的。用于确定将数字字符串比较为数字还是字符串的标志。 如果为 如果为 默认值为 |
||||||||||||
alternate |
串 | 可选的。确定排序规则是否应将空格和标点符号视为基本字符以便进行比较的字段。 可能的值为:
有关 更多信息,请参见ICU整理:比较级别。 默认值为 |
||||||||||||
maxVariable |
串 | 可选的。确定时哪些字符可忽略的字段。如果没有效果
可能的值为:
|
||||||||||||
backwards |
布尔值 | 可选的。用于确定是否带有变音符号的字符串从字符串的后面进行排序的标志,例如某些法语词典的排序。 如果为 如果为 默认值为 |
||||||||||||
normalization |
布尔值 | 可选的。用于确定是否检查文本是否需要规范化并执行规范化的标志。通常,大多数文本不需要此规范化处理。 如果为 如果为 默认值为 有关详细信息,请参见 http://userguide.icu-project.org/collation/concepts#TOC-Normalization。 |
您可以为以下操作指定排序规则:
注意
您不能为一个操作指定多个排序规则。例如,您不能为每个字段指定不同的排序规则,或者如果对排序执行查找,则不能对查找使用一种排序规则,而对排序使用另一种排序规则。
[1] | (1,2)的一些索引类型不支持排序规则。有关详细信息,请参见 排序规则和不支持的索引类型。 |
某些归类语言环境具有变体,它们使用特定于语言的规则。要指定语言环境变体,请使用以下语法:
例如,使用unihan
中文排序规则的变体:
有关所有归类语言环境及其变体的完整列表,请参见 归类语言环境。
$lookup
或)$graphLookup
,则这些视图必须具有相同的排序规则。要将索引用于字符串比较,操作还必须指定相同的排序规则。即,具有排序规则的索引不能支持对索引字段进行字符串比较的操作(如果该操作指定了不同的排序规则)。
例如,该集合myColl
在category
具有排序规则语言环境的字符串字段上具有索引"fr"
。
以下查询操作指定与索引相同的排序规则,可以使用索引:
但是,默认情况下使用“简单”二进制整理程序的以下查询操作不能使用索引:
对于索引前缀键不是字符串,数组和嵌入式文档的复合索引,指定其他排序规则的操作仍可以使用索引来支持索引前缀键的比较。
例如,集合myColl
在数字字段score
和price
字符串字段
上具有复合索引category
;使用排序规则语言环境创建索引以
"fr"
进行字符串比较:
使用"simple"
二进制排序规则进行字符串比较的以下操作可以使用索引:
下面的操作使用"simple"
二进制排序规则对索引category
字段进行字符串比较,该操作可以使用索引仅满足查询的一部分:score: 5
以下索引仅支持简单的二进制比较,不支持排序规则:
小费
要创建一个text
,一个2d
,或者geoHaystack
对具有非简单归类的集合索引,你必须明确指定创建索引时。{collation: {locale: "simple"} }