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