在sails.js中按点数和注册日期获得用户的排名

问题描述 投票:0回答:1

如何使用积分和注册时间获得用户排名?我试图通过相同的条件吸引用户,但效果很好。

  await User.find({
      sort: {
          rewardPoints: 0,
          createdAt: 1
      }   
  }).limit(limit);

现在我只想获得我的排名,但此代码无法给我正确的结果

 await User.count({ 
     createdAt: { "<" : user.createdAt },
     rewardPoints: { ">=": user.rewardPoints },
  });
node.js sails.js waterline
1个回答
0
投票

我终于使用SQL查询完成了它:

SELECT id
          , firstName
          , rank
          FROM ( 
            SELECT 
            *
            , (@rank := @rank + 1) AS rank
            FROM 
            user
            CROSS JOIN( 
            SELECT
              @rank := 0
            )  
            AS 
              init_var_var
            ORDER BY
            user.rewardPoints DESC,
            user.createdAt ASC    
            )
          AS logins_ordered_ranked
          WHERE
            id = "${user.id}"
© www.soinside.com 2019 - 2024. All rights reserved.