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

查询 Null 字段或缺失字段

使用以下方法在MongoDB中查询 null 或缺失字段:


➤ 使用右上角的 Select your language(选择语言)下拉菜单,设置以下示例的语言或选择 MongoDB Compass。


MongoDB中的查询运算符以不同方式处理 null 值。

本页面中的示例展示使用 db.collection.find() 方法在 mongosh 中查询 null 值的操作示例。

重要

将 null 与MongoDB Shell结合使用来查询MongoDB中的 null 或缺失字段。

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

{ metacritic : null }查询会将包含 metacritic字段与 null 值或不包含 metacritic字段的文档进行匹配。

db.movies.find( { metacritic: null } )

该查询返回 movies集合中 metacritic字段包含 null 值或不存在的所有文档。

要查询存在且不为空的字段,请使用 { $ne : null }过滤器。

{ metacritic : { $ne : null } }查询匹配存在metacritic 字段且具有非空值的文档。

db.movies.find( { metacritic: { $ne: null } } )

{ metacritic : { $type: 10 } } 查询 仅 匹配包含具有 null 值的 metacritic 字段的文档。The value of the metacritic 字段 is of BSON Type Null (BSON Type 10):

db.movies.find( { metacritic: { $type: 10 } } )

该查询仅返回 movies集合中 metacritic字段具有 null 值的文档。

文档的以下示例查询不包含字段。

{ metacritic : { $exists: false } } 查询匹配不包含 metacritic 字段的文档:

db.movies.find( { metacritic: { $exists: false } } )

该查询仅返回 movies集合中不包含 metacritic字段的文档。

注意

表达式不支持$exists操作符。要检查表达式中某个字段是否存在,可以使用$type聚合操作符来检查字段的类型是否为 missing。

有关更多信息,请参阅 $type 存在性检查。

提示

$type 和 $exists 操作符的参考文档。

本节中的示例使用示例训练数据集。要了解如何将示例数据集加载到您的 MongoDB Atlas 部署中,请参阅加载示例数据。

要查询 MongoDB Atlas 中的 null 或缺失字段,请遵循以下步骤:

1
  1. 如果尚未显示,请从导航栏上的 Organizations 菜单中选择包含所需项目的组织。

  2. 如果尚未显示,请从导航栏的 Projects 菜单中选择您的项目。

  3. 在侧边栏中,单击 Database 标题下的 Clusters。

    会显示集群页面。

2
  1. 对于包含样本数据的集群,单击Browse Collections 。

  2. 在左侧导航窗格中,选择 sample_training 数据库。

  3. 选择 companies 集合。

3

单击Insert Document按钮显示对话框,然后单击Insert插入仅包含 _id 字段的文档。

4

要查找包含 null 或缺失值的文档,请在Filter字段中指定查询筛选器文档。查询筛选器文档使用查询运算符指定搜索条件。

MongoDB中的查询运算符以不同方式处理 null 值。要应用查询筛选条件,请将以下每个文档复制到 Filter搜索栏中,然后单击 Apply。

使用以下查询筛选条件匹配包含 description字段和 null 值或不包含 description字段的文档:

{ description : null }

使用以下查询筛选器仅匹配包含 description 字段和 null 值的文档。筛选器指定该字段的值必须是 BSON 类型 Null(BSON 类型 10):

{ description : { $type: 10 } }

使用以下查询筛选器仅匹配不包含 description 字段的文档。只有您之前插入的文档应该会显示:

{ description : { $exists: false } }
选择您的语言
给本页内容打分