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" ] }