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,我猜这可能不是你想要的。