Как заказать отношения многие ко многим в Sequelize? - PullRequest
3 голосов
/ 26 февраля 2020

У меня есть отношения многие ко многим между Пользователь и Категория - Пользовательская категория , как показано ниже.

let user = await User.findAll({
  where: {
    id: req.query.user
  },
  attributes: ["id", "name"],
  include: [
    {
      model: models.Category,
      as: "interests",
      attributes: ["id", "name", "nameTH", "icon"],
      through: {
        model: models.UserCategory,
        as: "user_categories",
        attributes: ["id", "userId", "categoryId", "updatedAt"]
      }
    }
  ],
  // Here, I want to order by updatedAt in user_categories
  order: [["user_categories", "updatedAt", "DESC"]] 
});

Как я могу упорядочить результат по "updatedAt" внутри UserCategory модель?

1 Ответ

1 голос
/ 26 февраля 2020

Пожалуйста, обратитесь к следующему коду для сортировки результата по updatedAt внутри UserCategory model-

let user = await User.findAll({
  where: {
    id: req.query.user
  },
  attributes: ["id", "name"],
  include: [
    {
      model: models.Category,
      as: "interests",
      attributes: ["id", "name", "nameTH", "icon"],
      through: {
        model: models.UserCategory,
        as: "user_categories",
        attributes: ["id", "userId", "categoryId", "updatedAt"]
      }
    }
  ],
  // Here, I want to order by updatedAt in user_categories
  order: [[Sequelize.literal('`interests->user_categories`.`updatedAt`'), 'DESC']] 
});

Надеюсь, это поможет!

...