在 MongoDB 中检查是否为空?
mongodbdatabasebig data analytics更新于 2026/1/13 13:07:17
我们将在这里使用 Null 类型。以下是带有别名的 null 类型 −
| Type | Number | Alias |
|---|---|---|
| Double | 1 | “double” |
| String | 2 | “string” |
| Object | 3 | “object” |
| Array | 4 | “array” |
| Binary data | 5 | “binData” |
| Undefined | 6 | “undefined” |
| ObjectId | 7 | “objectId” |
| Boolean | 8 | “bool” |
| Date | 9 | “date” |
| Null | 10 | “null” |
| Regular Expression | 11 | “regex” |
以下是类型 10 的语法,即 null −
db.yourCollectionName.find({"yourFieldName":{ $type: 10 } });
上述语法将仅查找值为 null 的文档。首先,我们创建一个包含文档的集合 −
> db.mongoDbEqualDemo.insertOne({"Age":34});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd7e9121a844af18acdffa3")
}
> db.mongoDbEqualDemo.insertOne({"Age":""});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd7e9161a844af18acdffa4")
}
> db.mongoDbEqualDemo.insertOne({"Age":null});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd7e9191a844af18acdffa5")
}
> db.mongoDbEqualDemo.insertOne({"Age":56});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd7e91e1a844af18acdffa6")
}
> db.mongoDbEqualDemo.insertOne({});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd7e9261a844af18acdffa7")
}
> db.mongoDbEqualDemo.insertOne({"Age":null});
{
"acknowledged" : true,
"insertedId" : ObjectId("5cd7e92e1a844af18acdffa8")
}
以下是使用 find() 方法显示集合中的所有文档的查询 −
> db.mongoDbEqualDemo.find().pretty();
这将产生以下输出 −
{ "_id" : ObjectId("5cd7e9121a844af18acdffa3"), "Age" : 34 }
{ "_id" : ObjectId("5cd7e9161a844af18acdffa4"), "Age" : "" }
{ "_id" : ObjectId("5cd7e9191a844af18acdffa5"), "Age" : null }
{ "_id" : ObjectId("5cd7e91e1a844af18acdffa6"), "Age" : 56 }
{ "_id" : ObjectId("5cd7e9261a844af18acdffa7") }
{ "_id" : ObjectId("5cd7e92e1a844af18acdffa8"), "Age" : null }
以下查询仅检查是否等于空值 −
> db.mongoDbEqualDemo.find({"Age":{ $type: 10 } });
这将产生以下输出 −
{ "_id" : ObjectId("5cd7e9191a844af18acdffa5"), "Age" : null }
{ "_id" : ObjectId("5cd7e92e1a844af18acdffa8"), "Age" : null }

