sql >> Base de Datos >  >> NoSQL >> MongoDB

Por qué la ordenación de MongoDb es lenta con las colecciones de búsqueda

Actualmente, la búsqueda se realizará para cada empleado_detalles, lo que significa 330000 veces, pero si ordenamos y limitamos primero antes de la búsqueda, será solo 10 veces. Esto reducirá en gran medida el tiempo de consulta.

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

Después de probar esto, si desea disminuir el tiempo de respuesta, puede definir un index en el campo de clasificación.

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