MongoDB - การสร้างดัชนี
ดัชนีสนับสนุนการแก้ปัญหาที่มีประสิทธิภาพของแบบสอบถาม MongoDB ต้องสแกนเอกสารทุกชุดเพื่อเลือกเอกสารที่ตรงกับคำสั่งแบบสอบถาม การสแกนนี้ไม่มีประสิทธิภาพสูงและต้องใช้ MongoDB ในการประมวลผลข้อมูลจำนวนมาก
ดัชนีเป็นโครงสร้างข้อมูลพิเศษที่จัดเก็บข้อมูลส่วนเล็ก ๆ ไว้ในรูปแบบที่ง่ายต่อการสำรวจ ดัชนีจะเก็บค่าของเขตข้อมูลหรือชุดของเขตข้อมูลเฉพาะโดยเรียงลำดับตามค่าของเขตข้อมูลตามที่ระบุไว้ในดัชนี
createIndex () วิธีการ
ในการสร้างดัชนีคุณต้องใช้เมธอด createIndex () ของ MongoDB
ไวยากรณ์
ไวยากรณ์พื้นฐานของ createIndex() วิธีการดังต่อไปนี้ ().
>db.COLLECTION_NAME.createIndex({KEY:1})
คีย์ต่อไปนี้คือชื่อของฟิลด์ที่คุณต้องการสร้างดัชนีและ 1 สำหรับจากน้อยไปหามาก ในการสร้างดัชนีจากมากไปหาน้อยคุณต้องใช้ -1
ตัวอย่าง
>db.mycol.createIndex({"title":1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
>
ใน createIndex() วิธีการที่คุณสามารถส่งหลายฟิลด์เพื่อสร้างดัชนีในหลายฟิลด์
>db.mycol.createIndex({"title":1,"description":-1})
>
วิธีนี้ยังยอมรับรายการตัวเลือก (ซึ่งเป็นทางเลือก) ต่อไปนี้เป็นรายการ -
พารามิเตอร์ | ประเภท | คำอธิบาย |
---|---|---|
พื้นหลัง | บูลีน | สร้างดัชนีในพื้นหลังเพื่อให้การสร้างดัชนีไม่บล็อกกิจกรรมฐานข้อมูลอื่น ๆ ระบุ true เพื่อสร้างในพื้นหลัง ค่าเริ่มต้นคือfalse. |
ไม่เหมือนใคร | บูลีน | สร้างดัชนีเฉพาะเพื่อที่คอลเลกชันจะไม่ยอมรับการแทรกเอกสารที่คีย์ดัชนีหรือคีย์ตรงกับค่าที่มีอยู่ในดัชนี ระบุ true เพื่อสร้างดัชนีเฉพาะ ค่าเริ่มต้นคือfalse. |
ชื่อ | สตริง | ชื่อของดัชนี หากไม่ระบุ MongoDB จะสร้างชื่อดัชนีโดยการต่อชื่อของเขตข้อมูลที่จัดทำดัชนีและลำดับการจัดเรียง |
เบาบาง | บูลีน | หากเป็นจริงดัชนีจะอ้างอิงเฉพาะเอกสารที่มีฟิลด์ที่ระบุ ดัชนีเหล่านี้ใช้พื้นที่น้อยกว่า แต่ทำงานแตกต่างกันในบางสถานการณ์ (โดยเฉพาะประเภทต่างๆ) ค่าเริ่มต้นคือfalse. |
expireAfterSeconds | จำนวนเต็ม | ระบุค่าเป็นวินาทีเป็น TTL เพื่อควบคุมระยะเวลาที่ MongoDB เก็บรักษาเอกสารในคอลเล็กชันนี้ |
น้ำหนัก | เอกสาร | น้ำหนักคือตัวเลขตั้งแต่ 1 ถึง 99,999 และแสดงถึงความสำคัญของฟิลด์ที่สัมพันธ์กับฟิลด์อื่น ๆ ที่จัดทำดัชนีในแง่ของคะแนน |
default_language | สตริง | สำหรับดัชนีข้อความภาษาที่กำหนดรายการคำหยุดและกฎสำหรับตัวเริ่มต้นและโทเค็นไนเซอร์ ค่าเริ่มต้นคือEnglish. |
language_override | สตริง | สำหรับดัชนีข้อความให้ระบุชื่อของเขตข้อมูลในเอกสารที่มีภาษาที่จะแทนที่ภาษาเริ่มต้น ค่าเริ่มต้นคือภาษา |
dropIndex () วิธีการ
คุณสามารถดร็อปดัชนีโดยใช้เมธอด dropIndex () ของ MongoDB
ไวยากรณ์
ไวยากรณ์พื้นฐานของ DropIndex () method มีดังต่อไปนี้ ()
>db.COLLECTION_NAME.dropIndex({KEY:1})
คีย์ต่อไปนี้คือชื่อของไฟล์ที่คุณต้องการสร้างดัชนีและ 1 สำหรับจากน้อยไปหามาก ในการสร้างดัชนีจากมากไปหาน้อยคุณต้องใช้ -1
ตัวอย่าง
> db.mycol.dropIndex({"title":1})
{
"ok" : 0,
"errmsg" : "can't find index with key: { title: 1.0 }",
"code" : 27,
"codeName" : "IndexNotFound"
}
dropIndexes () วิธีการ
วิธีนี้จะลบดัชนี (ระบุ) หลายรายการในคอลเลกชัน
ไวยากรณ์
ไวยากรณ์พื้นฐานของ DropIndexes () method มีดังนี้ () -
>db.COLLECTION_NAME.dropIndexes()
ตัวอย่าง
สมมติว่าเราได้สร้างดัชนี 2 รายการในคอลเลกชัน mycol ที่มีชื่อว่าดังที่แสดงด้านล่าง
> db.mycol.createIndex({"title":1,"description":-1})
ตัวอย่างต่อไปนี้จะลบดัชนีที่สร้างขึ้นด้านบนของ mycol -
>db.mycol.dropIndexes({"title":1,"description":-1})
{ "nIndexesWas" : 2, "ok" : 1 }
>
getIndexes () วิธีการ
วิธีนี้ส่งคืนคำอธิบายของดัชนีทั้งหมดในคอลเลกชัน
ไวยากรณ์
ต่อไปนี้เป็นไวยากรณ์พื้นฐานของเมธอด getIndexes () -
db.COLLECTION_NAME.getIndexes()
ตัวอย่าง
สมมติว่าเราได้สร้างดัชนี 2 รายการในคอลเลกชัน mycol ที่มีชื่อว่าดังที่แสดงด้านล่าง
> db.mycol.createIndex({"title":1,"description":-1})
ตัวอย่างต่อไปนี้ดึงดัชนีทั้งหมดในคอลเลกชัน mycol -
> db.mycol.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "test.mycol"
},
{
"v" : 2,
"key" : {
"title" : 1,
"description" : -1
},
"name" : "title_1_description_-1",
"ns" : "test.mycol"
}
]
>