Сортировать массив по длине в дальнейшем - PullRequest
0 голосов
/ 28 ноября 2018

Я использую "sequelize".В массиве я храню идентификаторы пользователей.Мне нужно отсортировать по количеству элементов в массиве, то есть чем больше элементов в массиве, тем выше он в списке, элементы внутри массива мне не интересны.

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

};

1 Ответ

0 голосов
/ 28 ноября 2018

Чтобы получить список книг, упорядоченных по количеству произвольных экземпляров модели, связанных с ним, предположим, 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
    ]
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...