Как использовать orderBy с включением в sequelizejs - PullRequest
0 голосов
/ 01 февраля 2019

Я пытаюсь получить результат с помощью столбца, который вычисляется во время выполнения запроса, и псевдонима с именем

расстояние

вот мой запрос

User.findAll({
      include: [{
        model: Address,
        attributes: ['col1',
          [Sequelize.literal("6371  acos(cos(radians(122))  cos(radians(latitude))  cos(radians(122) - radians(longitude)) + sin(radians(6661))  sin(radians(latitude)))"), 'distance']
        ],
      }],
      order: [Sequelize.literal("Address.distance"), 'DESC']
    });

но возвращается ошибка

неизвестный столбец Address.distance

Я тоже пробовал это

User.findAll({
      include: [{
        model: Address,
        attributes: ['col1',
          [Sequelize.literal("6371  acos(cos(radians(122))  cos(radians(latitude))  cos(radians(122) - radians(longitude)) + sin(radians(6661))  sin(radians(latitude)))"), 'distance']
        ],
      }],
      order: ["distance", 'DESC']
    });

но этовыдал ту же ошибку:

неизвестное расстояние до столбца

Может кто-нибудь помочь в этом вопросе.Заранее спасибо

1 Ответ

0 голосов
/ 02 февраля 2019

Попробуйте явно указать модель, по которой вы хотите отсортировать.

User.findAll({
      ...
      order: [ [ Address, 'distance', 'DESC' ] ]
    });
...