【问题标题】:ORDER BY sequelize nodeJSORDER BY 续集 nodeJS
【发布时间】:2020-07-03 12:00:08
【问题描述】:

我想让我的用户按“game_order”排序。我尝试了很多可能性,但没有成功(每次结果都是根据用户的 ID)。我使用的是续集版本:5.21.12

这是我的要求:

exports.get_user_in_game = function(req, res) {
  models.user.findAll({
    attributes: ['id','username'],
    include: [
    {
      model: models.user_game,
      attributes: ['game_id','user_id','game_order','turn_to_pick'],
      where :{
        game_id : req.body.game_id
      },
      order:[
        /*[{model: models.user_game},'game_order','ASC']*/
        /*[models.user_game,'game_order','ASC']*/
        /*'game_order','ASC'*/
        ['game_order','ASC']
      ]
    }
    ]
  }).then(function(user_list) {
    res.status(200).send(user_list);
  }).catch(function(err) {
    console.log(err);
    res.status(400).end();
  });
};

在带有 sequelize 的包含模型中排序的好方法是什么?

【问题讨论】:

    标签: node.js include sequelize.js sql-order-by


    【解决方案1】:

    试试下面。

    exports.get_user_in_game = function(req, res) {
      models.user.findAll({
        attributes: ['id','username'],
        include: [
        {
          model: models.user_game,
          attributes: ['game_id','user_id','game_order','turn_to_pick'],
          where :{
            game_id : req.body.game_id
          },
        }
        ],
        order:[
            [models.user_game,'game_order','ASC'],
          ]
      }).then(function(user_list) {
        res.status(200).send(user_list);
      }).catch(function(err) {
        console.log(err);
        res.status(400).end();
      });
    };
    

    有关更多嵌套包含,请查看此issue on github

    【讨论】:

    • 感谢您的回复 :) 我已经尝试过(第二次尝试),但它不起作用...
    • 哦!我没注意到。您需要从包含中取出订单条款。我现在更新了支票。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-28
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多