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

อาร์เรย์ดัชนี MongoDB เป็นอย่างไร


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