Node.js: effettuare l'ordinamento (sorting) dei dati di MongoDB con ExpressJS

Short link

Possiamo effettuare il sorting dei dati di MongoDB in Node.js utilizzando ExpressJS.

Abbiamo la seguente tabella:


<table>
  <thead>
    <tr>
      <th>ID 
        <a href="?order=id&sort=asc">+</a>
        <a href="?order=id&sort=desc">-</a>
      </th>
      <th>
        Name
        <a href="?order=name&sort=asc">+</a>
        <a href="?order=name&sort=desc">-</a>
      </th>
    </thead>
    <tbody>

    </tbody>
</table>            

La nostra soluzione:


app.get('/documents', (req, res) => {
    let sort = {};
    let allowed = ['id', 'name'];
    if(req.query.sort) {
        let order = req.query.order;
        if(allowed.indexOf(order) !== -1) {
           sort[order] = (req.query.sort === 'asc') ? 1 : -1;
        }
    }
    db.documents.find().limit(10).sort(sort).then(docs => {
        //...
    }).catch(err => {
       //...
    });
});

L'autore

Gabriele Romanato, sviluppatore web full stack specializzato in siti, applicativi web ed e-commerce con Node.js e PHP.