我使用“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/