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

$unset(更新操作符)

注意

消歧

以下页面介绍了更新操作符$unset 。有关聚合阶段,请参阅$unset 。

$unset

$unset操作符删除特定字段。

可以使用 $unset 查找托管在以下环境中的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

$unset操作符具有以下形式:

{ $unset: { <field1>: "", ... } }

$unset表达式中的指定值(即"" )不会影响操作。

要在嵌入式文档或数组中指定 <field>,请使用点符号。

从 MongoDB 5.0 开始,更新操作符按字典顺序处理具有基于字符串的名称的文档字段。具有数字名称的字段按数字顺序处理。详情请参阅更新操作符行为。

如果该字段不存在,则$unset 不执行任何操作(即不执行任何操作)。

与$ 一起使用以匹配大量元素时,$unset 会将匹配元素替换为null ,而不是从大量中删除匹配元素。此行为使大量大小和元素位置保持一致。

从MongoDB5.0 开始,当您将 等更新操作符符与空操作数表达式()mongod $unset一起使用时,{ } 不再引发错误。空更新不会导致任何更改,也不会创建oplog条目(意味着该操作为“不操作”)。

本页上的示例使用sample_mflix示例数据集中的数据。有关如何将此数据集加载到自管理MongoDB 部署中的详细信息,请参阅加载示例数据集。如果对示例数据库进行了任何修改,则可能需要删除并重新创建数据库才能运行本页上的示例。

以下示例使用$unset labelstatus操作符从匹配的电影文档中删除 和 字段:

db.movies.updateOne(
{ title: "The Dark Knight" },
{ $unset: { label: "", status: "" } }
)

操作返回以下结果:

{
acknowledged: true,
insertedId: null,
matchedCount: 1,
modifiedCount: 1,
upsertedCount: 0
}
给本页内容打分