在 MongoDB 支持排序规则的系列中,我们一直在学习如何使用 Navicat for MongoDB GUI管理和开发工具在 MongoDB 中指定排序规则。第 1 部分简要介绍了排序规则的概念,涵盖 MongoDB 中控制排序规则的字段,并详细介绍了排序规则文档的前三个字段,即“区域设置”、 “大小写级别”和“大小写优先”。今天的文章将描述其他字段。
强度(strength)
下一个字段“强度”是要执行比较的级别。
可能的值包括:
- Primary:排序规则仅执行基本字符的比较,忽略其他差异,例如重音符号和大小写。因此,å、ä 和 a 都将被视为同一个字符。
- Secondary:排序规则执行比较直到次要差异,例如重音符号。也就是说,基本字符+重音符号。请注意,基本字符之间的差异优先于次要差异。
- Tertiary:排序规则执行比较直到第三级差导,例如大小写和字母变体。也就是说,排序规则执行基本字符、重音符号以及大小写和变体的比较。虽然英语只有大小冝变体,但有些语言有不同但等同的字符,即简化中文与繁体中文。在此级别,基本字符之间的差异优先于重音,而重音优先于大小写和变体差异。
- Quaternary:仅限于特定使用案例,以便在级别 1 到 3 忽略标点符号时考虑标点符号或处理日语文本。
- Identical:限于仲裁成员(Tie-breaker)的特定使用案例。
这是默认级别。
在 Navicat 中,你可以在下拉列表中找到所有上述的值:
数值排序(numericOrdering)
这个标志用于确定是将数字字符串作为数字还是字符串进行比较:
- 如果是“on”,则按数字进行比较; 即“10”大于“2”。
- 如果是“off”,则按字符串进行比较; 即“10”小于“2”。
默认值为“off”。
替代(alternate)
这是另一个简单但功能强大的字段,用于确定排序是否应将空格和标点符号视为基本字符以进行比较。
它只有两个可能的值:
- non-ignorable:空格和标点符号被视为基本字符。
- shifted:空格和标点符号不被视为基本字符,仅在强度级别大于 3 时区分。
最大变量(maxVariable)
当“替代”设置为“shifted”时,此字段确定直到哪些字符可被忽略。当“替代”设置为“non-ignorable”时,它不起作用。
它只有两个可能的值:
- punct:空格和标点符号都是“可忽略的”,即不被视为基础字符。
- space:只有空格是“可忽略的”,即不被视为基本字符。
逆向(backwards)
这是另一个标志。这个确定带有重音的字符串是否从字符串的后面排序,例如使用一些法语字典排序。
- 如果是“on”,则从后到前进行比较。
- 如果是“off”,则从前到后进行比较。
默认值为“off”。
规范化
最后一个字段是一个标志,用于确定是否检查文本是否需要规范化并执行规范化。通常,大多数文本不需要规范化处理。
- 如果是“on”,检查是否完全规范化并执行规范化以比较文本。
- 如果是“off”,则不检查。
默认值为“off”。
总结
现在我们已经涵盖了所有排序规则的字段。在未来的文章中,我们将学习如何将排序规则应用于 MongoDB 中的排序操作。