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

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


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

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

>db.findByMultipleArrayDemo.insertOne({"StudentFirstName":"John","StudentLastName":"Smith",
   "StudentCoreSubject":["Compiler","Operating System","Computer Networks"]});
{
   "acknowledged" : true,
   "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"
   ]
}

ใช้ตัวดำเนินการ $in เพื่อค้นหาโดยหลายรายการอาร์เรย์ -

> db.findByMultipleArrayDemo.find({ StudentCoreSubject: { $in: ["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"
   ]
}