【问题标题】:Sort array by length in sequelize在sequelize中按长度排序数组
【发布时间】:2018-11-28 10:55:30
【问题描述】:

我使用“续集”。在数组中,我存储用户 ID。我需要按数组元素个数排序,也就是数组元素越多,在列表中的位置越高,数组里面的元素对我来说不感兴趣。

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

};

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 我认为创建一个表只是为了对喜欢的数量进行排序是一个坏主意。无论如何,谢谢你的回复!
    • 我只需要知道数组的长度并只按长度排序,其余的逻辑在客户端工作
    猜你喜欢
    • 2020-11-08
    • 1970-01-01
    • 2012-02-20
    • 2012-07-21
    • 1970-01-01
    • 1970-01-01
    • 2011-03-25
    • 1970-01-01
    相关资源
    最近更新 更多