📅  最后修改于: 2023-12-03 15:04:44.593000             🧑  作者: Mango
在 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):指定排序的强度。可选值为 1
、2
、3
或 4
。默认为 3
。collation()
方法只能用于在查询对象上定义排序规则。它不能直接用于更新操作或其他数据库操作。collation()
方法仅在使用 MongoDB 3.4 及以上版本以及使用 Mongoose 5.2 或更高版本时才可用。collation()
方法。更多详细信息,请参考Mongoose 文档。