提问者:小点点

按Sequeize nodeJS排序


我想让我的用户按'game_order'排序。 我尝试了很多可能性,但没有成功(每次的结果都是根据用户的id)。 我用的是sequelize版本: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在include模型中订货的好方法是什么?


共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();
  });
};

要获得更多嵌套的内容,请在GitHub上查看这个问题。