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

ค้นหาเอกสาร MongoDB ที่ฟิลด์อาร์เรย์ไม่ว่างเปล่า

ใช้โอเปอเรเตอร์ $ne (Not Equal) ร่วมกับ $exists เพื่อค้นหาเอกสารที่ฟิลด์อาร์เรย์มีข้อมูล (ไม่ใช่อาร์เรย์ว่าง)

ตัวอย่างการใช้งาน

สร้างคอลเลกชัน arrayFieldIsNotEmptyDemo:

> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Larry","StudentTechnicalSubject":["Java","C"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c76fe2f1e9c5dd6f1f78291") }
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Mike","StudentTechnicalSubject":[]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c76fe3b1e9c5dd6f1f78292") }
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Sam","StudentTechnicalSubject":["MongoDB"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c76fe491e9c5dd6f1f78293") }
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"Carol","StudentTechnicalSubject":[]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c76fe521e9c5dd6f1f78294") }
> db.arrayFieldIsNotEmptyDemo.insertOne({"StudentName":"David","StudentTechnicalSubject":["MySQL","SQL Server"]});
{ "acknowledged" : true, "insertedId" : ObjectId("5c76fe661e9c5dd6f1f78295") }

แสดงข้อมูลทั้งหมด:

> db.arrayFieldIsNotEmptyDemo.find().pretty();
{"_id" : ObjectId("5c76fe2f1e9c5dd6f1f78291"), "StudentName" : "Larry", "StudentTechnicalSubject" : [ "Java", "C" ] }
{"_id" : ObjectId("5c76fe3b1e9c5dd6f1f78292"), "StudentName" : "Mike", "StudentTechnicalSubject" : [ ] }
{"_id" : ObjectId("5c76fe491e9c5dd6f1f78293"), "StudentName" : "Sam", "StudentTechnicalSubject" : [ "MongoDB" ] }
{"_id" : ObjectId("5c76fe521e9c5dd6f1f78294"), "StudentName" : "Carol", "StudentTechnicalSubject" : [ ] }
{"_id" : ObjectId("5c76fe661e9c5dd6f1f78295"), "StudentName" : "David", "StudentTechnicalSubject" : [ "MySQL", "SQL Server" ] }

คำสั่งค้นหาเอกสารที่ฟิลด์ StudentTechnicalSubject ไม่ว่าง:

> db.arrayFieldIsNotEmptyDemo.find({StudentTechnicalSubject:{$exists:true,$ne:[]}}).pretty();
{"_id" : ObjectId("5c76fe2f1e9c5dd6f1f78291"), "StudentName" : "Larry", "StudentTechnicalSubject" : [ "Java", "C" ] }
{"_id" : ObjectId("5c76fe491e9c5dd6f1f78293"), "StudentName" : "Sam", "StudentTechnicalSubject" : [ "MongoDB" ] }
{"_id" : ObjectId("5c76fe661e9c5dd6f1f78295"), "StudentName" : "David", "StudentTechnicalSubject" : [ "MySQL", "SQL Server" ] }

เอกสารที่มีอาร์เรย์ว่าง (Mike, Carol) ถูกตัดออก