sql >> Databasteknik >  >> NoSQL >> MongoDB

Varför MongoDb-sortering är långsam med uppslagssamlingar

För närvarande kommer uppslag att göras för varje anställd_detaljer, vilket innebär 330 000 gånger, men om vi först sorterar och begränsar innan uppslagningen, kommer det bara att vara 10 gånger. Detta kommer att avsevärt minska frågetiden.

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

Efter att ha provat detta, om du ens vill minska svarstiden kan du definiera ett index på sorteringsfältet.

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



  1. Hur man använder GridFS för att lagra bilder med Node.js och Mongoose

  2. MongoDB och fulltext sök del av ordet

  3. Samtidighet - Få MongoDB-genererat ID för ett objekt infogat via Java på ett trådsäkert sätt

  4. Hur indexerar man flera unika datafält i ett enda dokument i Mongoose?