sequelize findAll sort order in nodejs sequelize findAll sort order in nodejs express express

sequelize findAll sort order in nodejs


In sequelize you can easily add order by clauses.

exports.getStaticCompanies = function () {    return Company.findAll({        where: {            id: [46128, 2865, 49569,  1488,   45600,   61991,  1418,  61919,   53326,   61680]        },         // Add order conditions here....        order: [            ['id', 'DESC'],            ['name', 'ASC'],        ],        attributes: ['id', 'logo_version', 'logo_content_type', 'name', 'updated_at']    });};

See how I've added the order array of objects?

order: [      ['COLUMN_NAME_EXAMPLE', 'ASC'], // Sorts by COLUMN_NAME_EXAMPLE in ascending order],

Edit:

You might have to order the objects once they've been recieved inside the .then() promise. Checkout this question about ordering an array of objects based on a custom order:

How do I sort an array of objects based on the ordering of another array?


If you want to sort data either in Ascending or Descending order based on particular column, using sequlize js, use the order method of sequlize as follows

// Will order the specified column by descending orderorder: sequelize.literal('column_name order')e.g. order: sequelize.literal('timestamp DESC')


You can accomplish this in a very back-handed way with the following code:

exports.getStaticCompanies = function () {    var ids = [46128, 2865, 49569, 1488, 45600, 61991, 1418, 61919, 53326, 61680]    return Company.findAll({        where: {            id: ids        },        attributes: ['id', 'logo_version', 'logo_content_type', 'name', 'updated_at'],        order: sequelize.literal('(' + ids.map(function(id) {            return '"Company"."id" = \'' + id + '\'');        }).join(', ') + ') DESC')    });};

This is somewhat limited because it's got very bad performance characteristics past a few dozen records, but it's acceptable at the scale you're using.

This will produce a SQL query that looks something like this:

[...] ORDER BY ("Company"."id"='46128', "Company"."id"='2865', "Company"."id"='49569', [...])