ใช้ hint() ระบุ {$natural: 1} เพื่อบังคับให้ MongoDB ทำ Full Collection Scan (BasicCursor) แทนที่จะใช้ดัชนี
สร้างดัชนีและข้อมูลทดสอบ
> db.demo31.createIndex({"StudentFirstName":1});
> db.demo31.insertOne({"StudentFirstName":"John"});
> db.demo31.insertOne({"StudentFirstName":"Jace"});
> db.demo31.insertOne({"StudentFirstName":"Chris"});
> db.demo31.insertOne({"StudentFirstName":"James"});
แสดงข้อมูลทั้งหมด
> db.demo31.find();
{
"_id" : ObjectId("5e174f8fcfb11e5c34d898c1"), "StudentFirstName" : "John"
}
{
"_id" : ObjectId("5e174f97cfb11e5c34d898c2"), "StudentFirstName" : "Jace"
}
{
"_id" : ObjectId("5e174f9ccfb11e5c34d898c3"), "StudentFirstName" : "Chris"
}
{
"_id" : ObjectId("5e174fa0cfb11e5c34d898c4"), "StudentFirstName" : "James"
}
คิวรี่บังคับใช้ BasicCursor
> db.demo31.find({"StudentFirstName": {$regex: '^Ja'}}).hint({$natural: 1});
ผลลัพธ์ (ค้นหาชื่อขึ้นต้น Ja)
{
"_id" : ObjectId("5e174f97cfb11e5c34d898c2"), "StudentFirstName" : "Jace"
}
{
"_id" : ObjectId("5e174fa0cfb11e5c34d898c4"), "StudentFirstName" : "James"
}
เมื่อใดควรใช้: ทดสอบประสิทธิภาพ (explain plan), ข้อมูลน้อยมาก, หรือดัชนีไม่ช่วยได้ (เช่น regex นำหน้าไม่คงที่)