Collation(排序规则)
国际化排序与比较规则
语法
{ collation: { locale: "<lang>", ... } }说明
Collation 用于指定字符串比较的规则,包括语言、大小写敏感性、重音敏感性、数字排序等。可在创建索引、查询、聚合等操作中指定 collation,实现多语言环境下的正确排序和匹配。
参数
locale必填语言区域代码,如 "zh"、"en"、"de"、"fr"、"simple"(二进制比较)
strength比较强度: 1(基本) 2(区分重音) 3(区分大小写) — 默认 3
caseLevel大小写级别比较, true 区分大小写
caseFirst"upper" 大写优先, "lower" 小写优先
numericOrderingtrue 启用数字自然排序(如"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 })