首页/数据/NoSQL 速查/null 与缺失字段的查询差异
本包目录(322 条)
MongoDB99 条
Elasticsearch89 条ClickHouse56 条时序与列式28 条选型与架构50 条

null 与缺失字段的查询差异

{field: null} 同时匹配“值为 null”和“字段缺失”的文档;只想要显式 null 用 $type:"null",只想要存在且非空用 $exists+$ne 组合。

NoSQL 速查数据更新于 2026-10-12
{field: null}匹配 null 值或字段缺失
{field: {$type: "null"}}仅显式存储的 null
{field: {$exists: true, $ne: null}}存在且不为 null

示例

示例
db.users.find({ phone: null })
db.users.find({ phone: { $exists: true, $ne: null } })
普通索引会把 null 值一起编入索引,用索引优化“查空值”时要结合索引形态分析。

易错点

  • 用 {field: null} 做数据回填检查会连带命中显式 null,需要区分时加 $type 条件

数据来源与参考

  • MongoDB Manual: Query for Null or Missing Fields
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌