MongoDB ครอบคลุมแบบสอบถามดัชนี
คำอธิบายเอกสารอย่างเป็นทางการ MongoDB ครอบคลุมแบบสอบถามต่อไปนี้เป็นแบบสอบถาม:
- เขตข้อมูลแบบสอบถามทั้งหมดเป็นส่วนหนึ่งของดัชนี
- ทุกเขตข้อมูลในแบบสอบถามเดียวกันผลตอบแทนดัชนี
ทั้งหมดตั้งแต่ปรากฏในเขตข้อมูลแบบสอบถามเป็นส่วนหนึ่งของดัชนีแฟ้มข้อมูล MongoDB โดยไม่ต้องดึงคำค้นหาแข่งขันทั้งหมดและกลับผลการค้นหาโดยใช้ดัชนีเดียวกัน
เพราะดัชนีอาศัยอยู่ใน RAM, การเข้าถึงข้อมูลมากกว่าที่จะอ่านข้อมูลได้เร็วขึ้นมากโดยการสแกนเอกสารจากดัชนี
ใช้แบบสอบถามดัชนีครอบคลุม
เพื่อทดสอบแบบสอบถามดัชนีหมวกใช้ชุดต่อไปของผู้ใช้:
{ "_id": ObjectId("53402597d852426020000002"), "contact": "987654321", "dob": "01-01-1991", "gender": "M", "name": "Tom Benzamin", "user_name": "tombenzamin" }
เราสร้างคอลเลกชันที่ผู้ใช้ดัชนีร่วมเพศภาคสนามและ user_name:
>db.users.ensureIndex({gender:1,user_name:1})
ตอนนี้ดัชนีจะครอบคลุมแบบสอบถามต่อไปนี้:
>db.users.find({gender:"M"},{user_name:1,_id:0})
นั่นคือสำหรับแบบสอบถามดังกล่าวข้างต้น MongoDB ไม่ได้ไปยื่นสำหรับฐานข้อมูล แต่มันสารสกัดจากข้อมูลจากดัชนีซึ่งเป็นแบบสอบถามข้อมูลที่รวดเร็วมาก
เนื่องจากดัชนีของเราไม่ได้รวมข้อมูล _id ที่ _id จะถูกส่งกลับโดยเริ่มต้นในแบบสอบถามที่เราสามารถมีสมาธิไม่รวมไว้ในผลการค้นหา MongoDB
ตัวอย่างต่อไปนี้จะไม่ได้ปกครอง _id แบบสอบถามจะไม่ได้รับการคุ้มครอง:
>db.users.find({gender:"M"},{user_name:1})
สุดท้ายหากแบบสอบถามต่อไปแบบสอบถามไม่สามารถใช้ครอบคลุมดัชนี:
- ข้อมูลทั้งหมดดัชนีเป็นอาร์เรย์ ทุกเขตข้อมูลดัชนีย่อยเป็นเอกสารที่