ในการสืบค้นภายในอาร์เรย์และตรวจสอบว่ามีอยู่จริงหรือไม่จึงจะนับได้ ให้ใช้ $exists ให้เราสร้างคอลเลกชันที่มีเอกสาร -
> db.demo296.insertOne( ... { ... "id":101, ... "Name":"Chris", ... "details":[ ... { ... SubjectId:[101,103], ... "SubjectName":["MySQL","MongoDB"] ... }, ... { ... SubjectId:[102,104], ... "SubjectName":["Java","C"] ... } ... ] ... } ...); { "acknowledged" : true, "insertedId" : ObjectId("5e4d51715d93261e4bc9ea3b") } > db.demo296.insertOne( ...{ ... "id":102, ... "Name":"David", ... "details":[ ... { ... SubjectId:[110,113] ... ... }, ... { ... SubjectId:[112,114] ... ... } ... ] ...} ...); { "acknowledged" : true, "insertedId" : ObjectId("5e4d519b5d93261e4bc9ea3c") } > db.demo296.insertOne( ... { ... "id":103, ... "Name":"Bob", ... "details":[ ... { ... "SubjectName":["C++","Python"] ... }, ... { ... "SubjectName":["Spring","Hibernate"] ... } ... ] ... } ...); { "acknowledged" : true, "insertedId" : ObjectId("5e4d52315d93261e4bc9ea3d") }
แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้วิธี find() -
> db.demo296.find();
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
{ "_id" : ObjectId("5e4d51715d93261e4bc9ea3b"), "id" : 101, "Name" : "Chris", "details" : [ { "SubjectId" : [ 101, 103 ], "SubjectName" : [ "MySQL", "MongoDB" ] }, { "SubjectId" : [ 102, 104 ], "SubjectName" : [ "Java", "C" ] } ] } { "_id" : ObjectId("5e4d519b5d93261e4bc9ea3c"), "id" : 102, "Name" : "David", "details" : [ { "SubjectId" : [ 110, 113 ] }, { "SubjectId" : [ 112, 114 ] } ] } { "_id" : ObjectId("5e4d52315d93261e4bc9ea3d"), "id" : 103, "Name" : "Bob", "details" : [ { "SubjectName" : [ "C++", "Python" ] }, { "SubjectName" : [ "Spring", "Hibernate" ] } ] }
ต่อไปนี้เป็นวิธีการสอบถาม MongoDB ภายในอาร์เรย์และรับการนับ -
> db.demo296.count( { 'details.SubjectName': {$exists: true }} );
สิ่งนี้จะสร้างผลลัพธ์ต่อไปนี้ -
2