MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Pourquoi le tri MongoDb est lent avec les collections de recherche

Actuellement, la recherche sera effectuée pour chaque employee_details, ce qui signifie 330 000 fois, mais si nous trions et limitons d'abord avant la recherche, ce ne sera que 10 fois. Cela réduira considérablement le temps de requête.

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 }},
]) 

Après avoir essayé cela, si vous voulez même diminuer le temps de réponse, vous pouvez définir un index sur le champ de tri.

db.employee_details.createIndex( { employee_fname: -1 } )