Docs 菜单
Docs 主页
/
MongoDB Compass
/ /

创建带排序规则的集合

在此页面上

  • 步骤
  • 限制与约束

排序规则允许您为字符串比较指定特定于语言的规则,例如字母大小写和重音符号规则。

1

Collections 屏幕中点击 Create Collection 按钮。

2
3

选择 Use Custom Collaton(使用自定义排序规则)选项。

4

您需要从 MongoDB 支持的语言中选择 locale(区域设置)。

所有其他排序规则选项参数都是可选的。有关字段的描述,请参阅排序规则

5

当参数 numericOrdering 设置为 true 时,存在以下限制:

  • 在比较中,仅考虑数字的连续非负整数子字符串。numericOrdering 不支持:

    • +

    • -

    • 指数

  • 只有数字或十进制数字 (Nd) 类别中的 Unicode 代码点才被视为数字。

  • 如果数字长度超过 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" }
]

以下 find 查询使用包含 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 没有按照预期的排序顺序进行排序,因为它们包含不支持的 - 字符。

后退

固定大小集合

在此页面上