📌  相关文章
📜  Query.prototype.collation() 如何在Mongoose中工作?(1)

📅  最后修改于: 2023-12-03 15:04:44.593000             🧑  作者: Mango

Query.prototype.collation() 在 Mongoose 中的工作原理

在 Mongoose 中,Query.prototype.collation() 是一个函数,它允许你在查询中为排序和筛选规则指定一个区分大小写、音调或字母排序的规则。使用 collation() 方法可以修改查询行为,使其在排序和筛选字符串时更加灵活和准确。

用法示例

你可以在查询对象上调用 collation() 方法来定义一个区分大小写的排序规则。下面是一个示例:

const query = Model.find({}).collation({ locale: 'en_US', strength: 2 });

在上面的示例中,Model.find({}) 返回一个查询对象,并通过 collation() 方法定义了一个区分大小写的排序规则。locale 参数用于指定排序使用的地区语言,而 strength 参数用于指定排序的强度。

参数说明

collation() 方法接受一个包含以下选项的对象作为参数:

  • locale (String):用于排序的地区语言,例如 'en_US''zh_CN'。默认为数据库的默认地区语言。
  • caseLevel (Boolean):指定是否区分大小写。默认为 false
  • caseFirst (String):指定对于具有相同主要排序键的字符串,是将大写字母排在前还是小写字母排在前。可选值为 'off''upper''lower'
  • numericOrdering (Boolean):指定是否按数字顺序排序字符串。默认为 false
  • alternate (String):指定非重音字符对语音排序的影响。可选值为 'non-ignorable''shifted'
  • maxVariable (String):指定排序规则中可变码点的级别。可选值为 'punct''space''symbol''accent'
  • backwards (Boolean):指定是否以逆序返回结果。默认为 false
  • normalization (Boolean):指定是否在排序和比较字符串时进行标准化。默认为 false
  • strength (Number):指定排序的强度。可选值为 1234。默认为 3
注意事项
  • collation() 方法只能用于在查询对象上定义排序规则。它不能直接用于更新操作或其他数据库操作。
  • collation() 方法仅在使用 MongoDB 3.4 及以上版本以及使用 Mongoose 5.2 或更高版本时才可用。
  • 只有支持区分大小写和音调排序的索引才能有效使用 collation() 方法。

更多详细信息,请参考Mongoose 文档