按长度对数组进行排序

时间:2018-11-28 10:55:30

标签: javascript arrays node.js database sequelize.js

我使用“ sequelize”。在数组中,我存储用户ID。我需要按数组中元素的数量进行排序,也就是说,数组中的元素越多,列表中的元素就越高,数组中的元素对我来说就不那么有趣了。

return db.Books.findAll({
    limit: 5,
    include: [{
        model: db.User
    }],
    order: [
        ['likes']    // likes it's array
    ]
})

};

1 个答案:

答案 0 :(得分:0)

要获得按与之关联的任意模型实例的数量排序的书籍清单,我们假设Like,您可以使用函数来计算Like中与该关系相匹配的行:

return db.Books.findAll({
    limit: 5,
    include: [{
        model: db.User
    },
    {
        model: db.Like,
        attributes:[
            [Sequelize.fn('COUNT', '*'), 'num_of_likes']
        ]
    }],
    order: [
        ['num_of_likes']    // likes it's array
    ]
});