Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 获取用户';s在sails.js中按积分和注册日期排名_Node.js_Sails.js_Waterline - Fatal编程技术网

Node.js 获取用户';s在sails.js中按积分和注册日期排名

Node.js 获取用户';s在sails.js中按积分和注册日期排名,node.js,sails.js,waterline,Node.js,Sails.js,Waterline,如何使用它的积分和注册时间来获得用户排名?我试着用同样的标准来获得用户,而且效果很好 await User.find({ sort: { rewardPoints: 0, createdAt: 1 } }).limit(limit); 现在我只想得到我的排名,但它并没有给我这个代码的正确结果 await User.count({ createdAt: { "<" : user.createdAt

如何使用它的积分和注册时间来获得用户排名?我试着用同样的标准来获得用户,而且效果很好

  await User.find({
      sort: {
          rewardPoints: 0,
          createdAt: 1
      }   
  }).limit(limit);
现在我只想得到我的排名,但它并没有给我这个代码的正确结果

 await User.count({ 
     createdAt: { "<" : user.createdAt },
     rewardPoints: { ">=": user.rewardPoints },
  });
等待用户计数({
createdAt:{“=”:user.rewardPoints},
});

我终于用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}"

在第二次查询中,您切换到了
.count
而不是
.find
。只有当您想知道有多少用户符合条件(而不是获取匹配用户的记录)时,这才是正确的。根据你自我回答中的sql,我猜这可能不是你想要的。