Docs 菜单

Docs 主页开发应用程序MongoDB Manual

设置缺失分片键字段

在此页面上

  • 例子

如果缺少分片键字段,可以将分片键字段设置为 null 。 如果要将缺失的分片键字段设置为非null值,请参阅更改文档的分片键值。

要执行更新,可以对mongos执行以下操作:

命令
方法
说明
multi: true
  • 可用于将缺失的键值仅设置为null

  • 可以在事务内部或外部执行。

  • 是否可以作为可重试写入来执行。

  • 有关其他要求,请参阅特定命令/方法。

multi: false
  • 可用于将缺失的键值设置为null或任何其他值。

  • 设置缺失分片键字段的更新必须满足以下要求之一:

    • 查询的筛选器包含查询中完整分片键的相等条件

    • 查询的筛选器包含 _id 的精确匹配项

    • 更新针对单个分片

  • 要设置为非null值,请参阅更改文档的分片键值。

  • 有关其他要求,请参阅特定命令/方法。

  • 可用于将缺失的键值设置为null或任何其他值。

  • 使用仅显式更新一个文档的方法设置缺失的分片键字段时,更新必须满足以下要求之一:

    • 查询的筛选器包含查询中完整分片键的相等条件

    • 查询的筛选器包含 _id 的精确匹配项

    • 更新针对单个分片

  • null上匹配时会返回缺失的键值。为避免更新键值null ,请酌情纳入其他查询条件。

  • 要设置为非null值,请参阅更改文档的分片键值。

  • 有关其他要求,请参阅特定命令/方法。

  • 要设置为null值,您可以在批量操作中指定多个分片键修改。

  • 使用仅显式更新一个文档的方法设置缺失的分片键字段时,更新必须满足以下要求之一:

    • 查询的筛选器包含查询中完整分片键的相等条件

    • 查询的筛选器包含 _id 的精确匹配项

    • 更新针对单个分片

  • 要设置为非null值,请参阅更改文档的分片键值。

  • 有关其他要求,请参阅底层命令/方法。

考虑在location字段上分片的sales集合。集合中的某些文档没有location字段。缺失字段被视为与该字段的 null 值相同。要将这些字段显式设置为null ,请运行以下命令:

db.sales.updateOne(
{ _id: 12345, location: null },
{ $set: { location: null } }
)

使用db.collection.updateOne()或其他仅显式更新一个文档的方法设置缺失的分片键字段时,更新必须满足以下要求之一:

  • 查询的筛选器包含查询中完整分片键的相等条件

  • 查询的筛选器包含 _id 的精确匹配项

  • 更新针对单个分片

← 更改文档的分区密钥值

在此页面上