MongoDB จัดทำดัชนีทุกค่าของอาร์เรย์เพื่อให้คุณสามารถสืบค้นองค์ประกอบเดียวได้
เพื่อให้เข้าใจแนวคิด ให้เราสร้างคอลเลกชันพร้อมกับเอกสาร แบบสอบถามเพื่อสร้างคอลเลกชันที่มีเอกสารมีดังนี้ -
> db.indexingForArrayElementDemo.insertOne({"StudentFavouriteSubject":["MongoDB","MySQL"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5c8acdca6cea1f28b7aa0816")
} แสดงเอกสารทั้งหมดจากคอลเล็กชันโดยใช้เมธอด find() แบบสอบถามมีดังต่อไปนี้ −
> db.indexingForArrayElementDemo.find().pretty();
ต่อไปนี้เป็นผลลัพธ์ -
{
"_id" : ObjectId("5c8acdca6cea1f28b7aa0816"),
"StudentFavouriteSubject" : [
"MongoDB",
"MySQL"
]
} นี่คือแบบสอบถามโดยที่ดัชนี MongoDB อาร์เรย์ &ลบ;
> db.indexingForArrayElementDemo.ensureIndex({"StudentFavouriteSubject":1}); ต่อไปนี้เป็นผลลัพธ์ -
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
} นี่คือแบบสอบถามสำหรับองค์ประกอบอาร์เรย์แต่ละรายการ -
> db.indexingForArrayElementDemo.find({"StudentFavouriteSubject":"MongoDB"}).pretty(); ต่อไปนี้เป็นผลลัพธ์ -
{
"_id" : ObjectId("5c8acdca6cea1f28b7aa0816"),
"StudentFavouriteSubject" : [
"MongoDB",
"MySQL"
]
} เรามาดูตัวอย่างอื่นกัน แบบสอบถามมีดังต่อไปนี้ −
> db.indexingForArrayElementDemo.find({"StudentFavouriteSubject":"MySQL"}).pretty(); ต่อไปนี้เป็นผลลัพธ์ -
{
"_id" : ObjectId("5c8acdca6cea1f28b7aa0816"),
"StudentFavouriteSubject" : [
"MongoDB",
"MySQL"
]
}