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

MongoDB ค้นหาโดยหลายรายการอาเรย์?


คุณสามารถใช้ตัวดำเนินการ $all เพื่อค้นหาด้วยรายการอาร์เรย์หลายรายการ เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร

แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -

<ก่อนหน้า>> db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith", "StudentCoreSubject":["Compiler","Operating System","Computer Networks"]});{ "รับทราบ" :จริง "insertedId" :ObjectId("5c7ef07b559dd2396bcfbfc4")}> db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"Carol","StudentLastName":"Taylor", "StudentCoreSubject":["MongoDB "MySQL","SQL Server"]});{ "acknowledged" :true, "insertedId" :ObjectId("5c7ef09d559dd2396bcfbfc5")}> db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"Bob","StudentLastName":"Taylor", "StudentCoreSubject":["MongoDB","MySQL","SQL Server"]});{ "acknowledged" :true, "insertedId" :ObjectId("5c7ef0c7559dd2396bcfbfc6")}> db.findByMultipleArrayDemo.insertOne( {"StudentFirstName":"David","StudentLastName":"Johnson", "StudentCoreSubject":["Compiler","Operating System","Computer Networks"]});{ "acknowledged" :true, "insertedId" :ObjectId("5c7ef0f2559dd2396bcfbfc7")}

แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังนี้ −

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

ต่อไปนี้เป็นผลลัพธ์ -

{ "_id" :ObjectId("5c7ef07b559dd2396bcfbfc4"), "StudentFirstName" :"John", "StudentLastName" :"Smith", "StudentCoreSubject" :[ "Compiler", "Operating System", "Computer Networks" ] }{ "_id" :ObjectId("5c7ef09d559dd2396bcfbfc5"), "StudentFirstName" :"Carol", "StudentLastName" :"Taylor", "StudentCoreSubject" :[ "MongoDB", "MySQL", "SQL Server" ]}{ " _id" :ObjectId("5c7ef0c7559dd2396bcfbfc6"), "StudentFirstName" :"Bob", "StudentLastName" :"Taylor", "StudentCoreSubject" :[ "MongoDB", "MySQL", "SQL Server" ]}{ "_id" ObjectId("5c7ef0f2559dd2396bcfbfc7"), "StudentFirstName" :"David", "StudentLastName" :"Johnson", "StudentCoreSubject" :[ "Compiler", "Operating System", "Computer Networks" ]}

นี่คือแบบสอบถามเพื่อค้นหาโดยหลายรายการอาร์เรย์ -

> db.findByMultipleArrayDemo.find({ StudentCoreSubject:{ $all:["Compiler", "Computer Networks"] }}).pretty();

ต่อไปนี้เป็นผลลัพธ์ที่แสดงระเบียนที่มีรายการอาร์เรย์ "คอมไพเลอร์" และ "เครือข่ายคอมพิวเตอร์ -

{ "_id" :ObjectId("5c7ef07b559dd2396bcfbfc4"), "StudentFirstName" :"John", "StudentLastName" :"Smith", "StudentCoreSubject" :[ "Compiler", "Operating System", "Computer Networks" ] }{ "_id" :ObjectId("5c7ef0f2559dd2396bcfbfc7"), "StudentFirstName" :"David", "StudentLastName" :"Johnson", "StudentCoreSubject" :[ "Compiler", "Operating System", "Computer Networks" ]}