使用排序规则的创建集合
排序 允许您指定针对字符串比较的语言特定规则,例如字母大小写和重音符号的规则。
操作步骤
4
为区域设置选择一个值。
您必须从MongoDB支持的编程语言和区域设置中选择一个区域设置。
所有其他校对选项参数都是可选的。有关字段的描述,请参阅校对。
限制和限制
以下限制适用于当参数numericOrdering
设置为true
时
只有连续的非负整数子串被考虑在比较中。
numericOrdering
不支持+
-
指数
只有Unicode代码点在数字或十进制数字(Nd)类别中的被视为数字。
如果数字长度超过254个字符,则超出字符被视为单独的数字。
示例
考虑以下字符串数字和小数值的集合
[ { "n": "1" }, { "n": "2" }, { "n": "-2.1" }, { "n": "2.0" }, { "n": "2.20" }, { "n": "10"}, { "n": "20" }, { "n": "20.1" }, { "n": "-10" }, { "n": "3" } ]
以下查找查询使用包含numericOrdering
参数的排序文档
db.c.find( { }, { _id: 0 } ).sort( { n: 1 } ).collation( { locale: 'en_US', numericOrdering: true } )
有关在Compass中查询文档的更多信息,请参阅查询您的数据,见查询您的数据.
操作返回以下结果
[ { "n": "-2.1" }, { "n": "-10" }, { "n": "1" }, { "n": "2" }, { "n": "2.0" } { "n": "2.20" }, { "n": "3" }, { "n": "10" }, { "n": "20" }, {"n": "20.1" } ]
numericOrdering: true
按升序对字符串值进行排序,就像它们是数字值一样。两个负值
-2.1
和-10
没有按预期的排序顺序排序,因为它们包含不支持的-
字符。