Docs 菜单

Docs 主页开发应用程序MongoDB Manual

Bulk.find.collation()

在此页面上

  • 说明
  • 例子
Bulk.find.collation(<document>)

指定批量写入的排序规则。 附加到Bulk.find()方法,为查找操作指定排序规则

Bulk.find.collation()接受以下排序规则文档:

{
locale: <string>,
caseLevel: <boolean>,
caseFirst: <string>,
strength: <int>,
numericOrdering: <boolean>,
alternate: <string>,
maxVariable: <string>,
backwards: <boolean>
}

指定排序规则时,locale 字段为必填字段;所有其他排序规则字段均为可选字段。有关字段的说明,请参阅排序规则文档

字段
类型
说明
locale
字符串

ICU 语言环境。有关支持的语言环境列表,请参阅支持的语言和语言环境

要指定简单的二进制比较,请指定 "simple"locale 值。

strength
整型

可选。要执行的比较级别。对应 ICU 比较级别 。可能的值为:

说明
1
主要比较级别。排序规则仅对基本字符进行比较,忽略其他差异,例如变音符号和大小写。
2
次要比较级别。排序规则会比较次要差异,例如变音符号。也就是说,排序规则会执行基本字符(主要差异)和变音符号(次要差异)的比较。基本字符之间的差异优先于次要差异。
3

第三级比较。排序规则会比较第三级差异,例如大小写和字母变体。也就是说,排序规则执行基本字符(主要差异)比较、变音符号(次要差异)比较以及大小写和字母变体(第三级差异)比较。基本字符之间的差异优先于次要差异,而次要差异又优先于第三级差异。

这是默认级别。

4
第四级。仅限于特定使用场景,可考虑前三个级别忽略的标点符号,或者用于处理日语文本。
5
等同级别。仅限于无法比较出差异的特定用例。

请参阅 ICU 排序规则:比较级别 了解详细信息。

caseLevel
布尔

可选。此标志用于确定是否在 strength 级别为 12 时进行大小写比较。

如果true ,则包括大小写比较;即

  • 当与 strength:1 一起使用时,排序规则会比较基本字符和大小写。

  • 当与 strength:2 一起使用时,排序规则会比较基本字符、变音符号(以及可能的其他次要差异)和大小写。

如果其值为 false,则在 1 级别或 2 级别不不包括大小写比较。默认值为 false

有关详细信息,请参阅 ICU 排序规则:大小写级别

caseFirst
字符串

可选。此字段用于确定第三级比较期间大小写差异的排序顺序。

可能的值为:

说明
"upper"
大写字母排序在小写字母之前。
"lower"
小写字母排序在大写字母之前。
"off"
默认值。与"lower" 类似,但略有不同。请参阅 https://unicode-org.github.io/icu/userguide/strings/properties.html#customization 以了解差异的详细信息。
numericOrdering
布尔

可选。此标志用于确定是将数字字符串作为数字还是字符串来比较。

如果为true ,则作为数字进行比较;即"10"大于"2"

如果为false ,则作为字符串进行比较;即"10"小于"2"

默认值为 false

alternate
字符串

可选。此字段用于确定排序规则是否应将空格和标点符号视为基本字符来比较。

可能的值为:

说明
"non-ignorable"
空格和标点符号均被视为基本字符。
"shifted"
空格和标点符号不被视为基本字符,并且仅在强度级别大于 3 时才能区分。

请参阅 ICU 排序规则:比较级别 以了解更多信息。

默认值为 "non-ignorable"

maxVariable
字符串

可选。此字段用于确定在 alternate: "shifted" 时哪些字符会被视为可忽略的字段。如果 alternate: "non-ignorable",则无效

可能的值为:

说明
"punct"
空格和标点符号都是“可忽略的”,即不被视为基本字符。
"space"
空格是“可忽略的”,即不被视为基本字符。
backwards
布尔

可选。此标志用于确定带有变音符号的字符串是否从字符串后面进行排序,例如某些法语词典排序。

如果 true,则从后往前进行比较。

如果 false,则从前往后进行比较。

默认值为 false

normalization
布尔

可选。此标志用于确定是否检查文本是否需要规范化并执行规范化。通常,大多数文本都不需要这种规范化处理。

如果 true,则检查是否需要完全规范化并执行规范化以比较文本。

如果 false,则不进行检查。

默认值为 false

请参阅 https://unicode-org.github.io/icu/userguide/collation/concepts.html#normalization 了解详细信息。

以下示例为collection初始化Bulk() myColl操作构建器,并为查找筛选器指定排序规则。

var bulk = db.myColl.initializeUnorderedBulkOp();
bulk.find( { category: "cafe" } ).collation({ locale: "fr", strength: 1 }).update( { $set: { status: "I", points: "0" } } );
bulk.execute();

提示

另请参阅:

← Bulk.find.arrayFilters()

在此页面上