javascript - 在sequelize中按长度对数组进行排序

标签 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
    ]
})

};

最佳答案

要获取按与其关联的任意模型实例的数量排序的书籍列表,让我们假设 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
    ]
});

关于javascript - 在sequelize中按长度对数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53517806/

相关文章:

Javascript 用字符串替换 onKeyUp 事件

javascript - 那些 "You' ve won won an iPad"垃圾网站上的 Javascript 弹出窗口实际上是做什么的?

javascript - 无法解析 JSON 对象数组

php - 允许用户使用 mysql 为页面(id、节点等)添加书签的最有效方法是什么?

node.js - Docker 在 CMD 命令中更改目录

javascript - 从 React 中 cotentEditable 的 onInput 事件获取值

javascript - 为什么我不能使用 array == [] 检查数组是否为空?

javascript - 返回与另一个对象数组的属性匹配的对象数组的子集

node.js - Node promise 链接导致函数中返回语句过多

node.js - 如果我想提供 React 文件并进行 API 调用,我应该使用一台服务器还是两台服务器?