如何使用 MongoDB 來查詢所有具有某個欄位的文件,而不管該欄位的值是什麼?


若要使用 MongoDB 查詢具有某個欄位的所有文件,而不管該欄位的值是什麼,請使用 $exists 運算子。以下是語法

db.yourCollectionName.find({yourFieldName:{$exists:true}});

讓我們建立一個包含文件的集合

>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"John","StudentAge":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d60a629b87623db1b22")
}
>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"Larry","StudentAge":null});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d70a629b87623db1b23")
}
>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"Chris","StudentAge":""});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d7ba629b87623db1b24")
}
>db.findAllDocumentWhichHaveFieldDemo.insertOne({"StudentName":"Robert","StudentAge":""});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5c9d1d81a629b87623db1b25")
}

以下是對所有文件執行查詢的方法,該方法使用 find() 來顯示集合中具有學生姓名欄位的文件

> db.findAllDocumentWhichHaveFieldDemo.find().pretty();

這將產生以下輸出

{
   "_id" : ObjectId("5c9d1d60a629b87623db1b22"),
   "StudentName" : "John",
   "StudentAge" : null
}
{
   "_id" : ObjectId("5c9d1d70a629b87623db1b23"),
   "StudentName" : "Larry",
   "StudentAge" : null
}
{
   "_id" : ObjectId("5c9d1d7ba629b87623db1b24"),
   "StudentName" : "Chris",
   "StudentAge" : ""
}
{
   "_id" : ObjectId("5c9d1d81a629b87623db1b25"),
   "StudentName" : "Robert",
   "StudentAge" : ""
}

以下是使用 MongoDB 查詢具有某個欄位的所有文件的查詢,而不管該欄位的值是什麼

> db.findAllDocumentWhichHaveFieldDemo.find({StudentAge:{$exists:true}});

這將產生以下輸出

{ "_id" : ObjectId("5c9d1d60a629b87623db1b22"), "StudentName" : "John", "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d70a629b87623db1b23"), "StudentName" : "Larry", "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d7ba629b87623db1b24"), "StudentName" : "Chris", "StudentAge" : "" }
{ "_id" : ObjectId("5c9d1d81a629b87623db1b25"), "StudentName" : "Robert", "StudentAge" : "" }

如果您不希望結果中顯示“StudentName”欄位,請使用以下查詢

>db.findAllDocumentWhichHaveFieldDemo.find({},{StudentName:0},{StudentAge:{$exists:true}});

這將產生以下輸出

{ "_id" : ObjectId("5c9d1d60a629b87623db1b22"), "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d70a629b87623db1b23"), "StudentAge" : null }
{ "_id" : ObjectId("5c9d1d7ba629b87623db1b24"), "StudentAge" : "" }
{ "_id" : ObjectId("5c9d1d81a629b87623db1b25"), "StudentAge" : "" }

更新於:2019-07-30

83 次瀏覽

開啟你的職業

完成課程,獲得認證

開始
廣告
© . All rights reserved.