sql >> Databáze >  >> NoSQL >> MongoDB

Proč je řazení MongoDb pomalé s kolekcemi vyhledávání

Aktuálně bude vyhledávání prováděno pro každý zaměstnanec_podrobnosti, což znamená 330 000krát, ale pokud před vyhledáváním nejprve seřadíme a omezíme, bude to pouze 10krát. To výrazně zkrátí dobu dotazová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 }},
]) 

Po vyzkoušení, pokud chcete dokonce zkrátit dobu odezvy, můžete definovat index v poli řazení.

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



  1. Jak zkontrolovat, zda pole pole obsahuje jedinečnou hodnotu nebo jiné pole v MongoDB?

  2. MongoDB $týden

  3. Přejmenujte ObjectId _id na id v jackson deserializaci s Jongo a MongoDB

  4. Laravel - Vymaže všechny klíče cache / redis, které obsahují konkrétní řetězec