Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MongoDB

ฉันจะใช้ 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" : "" }