如何检查 MongoDB 中的空值?


这里我们将使用 Null 类型。以下是别名的空值类型 −

类型数字别名
双精度1“double”
字符串2“string”
对象3“object”
数组4“array”
二进制数据5“binData”
未定义6“undefined”
ObjectId7“objectId”
布尔值8“bool”
日期9“date”
空值10“null”
正则表达式11“regex”

以下是类型 10(即 null)的语法 −

db.yourCollectionName.find({"yourFieldName":{ $type: 10 } });

上述语法仅找到具有空值的文档。让我们首先使用文档创建一个集合 −

> 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 }

更新于: 2019-07-30

520 次浏览

开始你的 职业

通过完成课程认证

开始
广告