Sparse Index
Exercise
0. เตรียมระบบ (ถ้ายังไม่ได้ทำ)
สร้าง mongodb cluster บน mongoDB Atlas และเชื่อมต่อกับ Mongo Cluster
1. เพิ่มข้อมูลใหม่ผ่าน MongoCompass
- จากหน้าจอหลักของ Compass ให้เลือก database sample_mflix
- กดเปิด mongosh จากขอบด้านล่างสุดของหน้าจอ
- ใช้คำสั่ง insert ข้อมูลใหม่เข้าไปใน collection sparseExample ดังนี้
db.sparseExample.insertMany([
{
_id: new ObjectId("64920144bf3922c17f7181ca"),
username: "coolUser",
avatar_url: "https://api.multiavatar.com/coolUser.svg",
},
{
_id: new ObjectId("64920144bf3922c17f7181cb"),
username: "testUser",
avatar_url: "https://api.multiavatar.com/testUser.svg",
},
{
_id: new ObjectId("64920144bf3922c17f7181cc"),
username: "anotherUser",
avatar_url: "https://api.multiavatar.com/anotherUser.svg",
},
{ _id: new ObjectId("64920173bf3922c17f7181cd"), username: "test" },
]);
2. ทดสอบการสร้าง Sparse Index
- จาก database sample_mflix ให้เลือก sparseExample collection มาใช้ทดสอบ
- กด tab Indexes และสังเกตว่ามี index อะไรบ้าง
- กดปุ่ม Create Index และสร้าง index ใหม่ โดยใช้ field avatar_url 1
- กด option
- เลื่อนลงมาด้านล่าง จะเห็นตัวเลือก Sparse index ให้กดเลือก
- กดสร้าง
- กลับมาที่ tab documents ให้ทำการเลือก Query
- ในช่อง Query ให้ใส่รายละเอียดคำสั่งดังนี้ และกดปุ่ม Find
{ avatar_url: { $exists: true } }
- กดปุ่ม Explain และสังเกตค่าการทำงานต่อไปนี้
- Plan (มีการใช้ Sparse index) ให้กดเปิดดูรายละเอียดใน execution stage ว่าค่า
isSparse
เป็น true
- Document examined
- Document returned
- Execution Time