Понастоящем ще бъде направено търсене за всеки employee_details, което означава 330 000 пъти, но ако първо сортираме и ограничим преди търсенето, това ще бъде само 10 пъти. Това значително ще намали времето за заявка.
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 }},
])
След като опитате това, ако дори искате да намалите времето за отговор, можете да дефинирате индекс в полето за сортиране.
db.employee_details.createIndex( { employee_fname: -1 } )