如何檢查 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 次瀏覽

開始你的 職業

透過完成課程認證

開始
廣告