Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

设置缺失分片键字段

在此页面上

  • 例子

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

要执行更新,您可以在 mongos 上使用以下操作:

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

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

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

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

update with
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 完全匹配的项

  • 更新针对单个分片

后退

更改文档的分区密钥值

在此页面上