เมื่อเราเรียกใช้แบบสอบถาม Mongo find () โดยไม่ระบุลำดับการจัดเรียงใด ๆ ฐานข้อมูลภายในใช้อะไรในการจัดเรียงผลลัพธ์
เมื่อดำเนินการ find () โดยไม่มีพารามิเตอร์ฐานข้อมูลจะส่งคืนอ็อบเจ็กต์ตามลำดับธรรมชาติไปข้างหน้า
สำหรับตารางมาตรฐานคำสั่งธรรมชาติไม่ได้มีประโยชน์อย่างยิ่งเนื่องจากแม้ว่าคำสั่งดังกล่าวมักจะใกล้เคียงกับลำดับการแทรก แต่ก็ไม่รับประกันว่าจะเป็น อย่างไรก็ตามสำหรับคอลเลกชันที่มีการต่อยอดจะรับประกันว่าลำดับตามธรรมชาติจะเป็นลำดับการแทรก สิ่งนี้จะมีประโยชน์มาก
อย่างไรก็ตามสำหรับคอลเลกชันมาตรฐาน (คอลเลกชันที่ไม่ได้ต่อยอด) ฟิลด์ใดที่ใช้ในการเรียงลำดับผลลัพธ์ มันเป็นฟิลด์_idหรืออย่างอื่น?
แก้ไข:
โดยทั่วไปฉันเดาว่าสิ่งที่ฉันพยายามจะได้รับคือถ้าฉันดำเนินการค้นหาต่อไปนี้:
db.collection.find({"x":y}).skip(10000).limit(1000);
ในเวลาสองจุดที่แตกต่างกัน: t1และt2ฉันจะได้รับชุดผลลัพธ์ที่ต่างกันหรือไม่:
- เมื่อไม่มีการเขียนเพิ่มเติมระหว่าง t1 & t2?
- เมื่อมีการเขียนใหม่ระหว่าง t1 และ t2?
- มีดัชนีใหม่ที่ถูกเพิ่มระหว่าง t1 & t2?
ฉันได้ทำการทดสอบในฐานข้อมูลชั่วคราวและผลลัพธ์ที่ได้ก็เหมือนกัน ( ใช่ ) สำหรับทั้ง 3 กรณี - แต่ฉันต้องการความแน่ใจและฉันมั่นใจว่ากรณีการทดสอบของฉันไม่ละเอียดถี่ถ้วน