Hiện tại, việc tra cứu sẽ được thực hiện cho mỗi nhân viên_details, nghĩa là 330000 lần, nhưng nếu chúng ta sắp xếp và giới hạn lần đầu trước khi tra cứu, nó sẽ chỉ là 10 lần. Điều này sẽ làm giảm đáng kể thời gian truy vấn.
db.getCollection('employee_details').aggregate([
{$sort : {employee_fname: -1}},
{$limit :10},
{
$lookup : {
from : "departments",
localField : "department_id",
foreignField : "_id",
as : "Department"
}
},
{ $unwind : { path: "$Department", preserveNullAndEmptyArrays: true }},
])
Sau khi thử điều này, nếu bạn thậm chí muốn giảm thời gian phản hồi, bạn có thể xác định một chỉ mục trên trường sắp xếp.
db.employee_details.createIndex( { employee_fname: -1 } )