rmdir.cn

Collation(排序规则)

国际化排序与比较规则

语法

{ collation: { locale: "<lang>", ... } }

说明

Collation 用于指定字符串比较的规则,包括语言、大小写敏感性、重音敏感性、数字排序等。可在创建索引、查询、聚合等操作中指定 collation,实现多语言环境下的正确排序和匹配。

参数

  • locale必填

    语言区域代码,如 "zh"、"en"、"de"、"fr"、"simple"(二进制比较)

  • strength

    比较强度: 1(基本) 2(区分重音) 3(区分大小写) — 默认 3

  • caseLevel

    大小写级别比较, true 区分大小写

  • caseFirst

    "upper" 大写优先, "lower" 小写优先

  • numericOrdering

    true 启用数字自然排序(如"2"在"10"之前)

  • alternate

    "non-ignorable"(默认) | "shifted" 空白/标点特殊处理

示例

中文排序

使用中文 locale 排序

db.users.find().sort({ name: 1 }).collation({ locale: "zh" })

大小写不敏感索引

以不区分大小写方式查询

db.users.createIndex({ name: 1 }, { collation: { locale: "en", strength: 1 } }) db.users.find({ name: "john" }).collation({ locale: "en", strength: 1 })

数字自然排序

"file10" 在 "file2" 之后

db.files.find().sort({ name: 1 }).collation({ locale: "en", numericOrdering: true })