对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

Bulk.find.collation()(mongosh方法)

Bulk.find.collation(<document>)

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

The Bulk.find.collation() accepts the following collation document:

{
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: 从节点(secondary node from replica set)比较级别。排序规则会比较次要差异,例如变音符号。也就是说,排序规则会执行基本字符(主要差异)和变音符号(次要差异)的比较。基本字符之间的差异优先于从节点(secondary node from replica set)差异。

  • 3第三级比较。排序规则会比较第三级差异,例如大小写和字母变体。也就是说,排序规则执行基本字符(主要差异)比较、变音符号(次要差异)比较以及大小写和字母变体(第三级差异)比较。基本字符之间的差异优先于从节点(secondary node from replica set)差异,而从节点(secondary node from replica set)差异又优先于第三级差异。这是默认级别。

  • 4第四级。仅限于特定使用案例,可考虑级别 1-3 忽略的标点符号,或者用于处理日语文本。

  • 5:等同级别。仅限于无法比较出差异的特定使用案例。

有关详细信息,请参阅 ICU 排序规则:比较级别。

caseLevel

布尔

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

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

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

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

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

有关更多信息,请参阅 ICU 排序规则:大小写级别。

caseFirst

字符串

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

可能的值为:

  • "upper": 大写字母排序在小写字母之前。

  • "lower"小写字母排序在大写字母之前。

  • "off":默认值。与 "lower" 类似,但略有不同。有关差异的详细信息,请参阅 ICU 自定义选项。

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。

有关详细信息,请参阅 ICU 排序规则:规范化。

此命令可用于以下环境中托管的部署:

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

注意

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

集合 restaurants 包含以下文档:

db.restaurants.insertMany( [
{ _id: 1, category: "café", status: "Open" },
{ _id: 2, category: "cafe", status: "open" },
{ _id: 3, category: "cafE", status: "open" }
] )

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

var bulk = db.restaurants.initializeUnorderedBulkOp();
bulk.find(
{ category: "cafe" }
).collation(
{ locale: "fr", strength: 1 }
).update(
{ $set: { status: "closed", points: "0" } }
);
bulk.execute();
{
acknowledged: true,
insertedCount: 0,
insertedIds: {},
matchedCount: 3,
modifiedCount: 3,
deletedCount: 0,
upsertedCount: 0,
upsertedIds: {}
}

该操作指定带有 strength: 1 的排序规则,这意味着排序规则忽略大小写和字母变体之间的差异。因此,即使只有一个文档与过滤(cafe) 中指定的字符串完全匹配,该操作也会匹配并更新集合中的所有文档。

批量操作完成后,集合将包含以下文档:

[
{ _id: 1, category: 'café', status: 'closed', points: '0' },
{ _id: 2, category: 'cafe', status: 'closed', points: '0' },
{ _id: 3, category: 'cafE', status: 'closed', points: '0' }
]
给本页内容打分