node.js - 在sails.js中通过积分和注册日期获取用户排名
问题描述
如何使用积分和注册时间获得用户排名?我试图通过相同的标准来吸引用户,并且效果很好。
await User.find({
sort: {
rewardPoints: 0,
createdAt: 1
}
}).limit(limit);
现在我只想获得我的排名,但这段代码并没有给我正确的结果
await User.count({
createdAt: { "<" : user.createdAt },
rewardPoints: { ">=": 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}"
推荐阅读
- css - 如何使标题标签位于顶部和中心
- python - 如何在烧瓶和 sqlite3 中创建类似按钮的工作?
- swift - 如何使用 Swift 在任意位置创建文件?
- tkinter - 我正在尝试用 tkinter 制作一个琐事游戏
- c++ - 假设只有最后一行会有不包含 3 个值的错误,我如何使用流提取运算符读取文件
- java - 使用 Gson/Java 解析 Alpha Vantage API
- c# - 为什么我能够访问一个类,而无需为其指定包含命名空间 - C#
- javascript - 如何使用数据样式名称选择颜色?
- docker - Docker上的“nvidia-smi”不显示“进程”是否正确?
- php - 表单验证Codeigniter 4后无法保留输入值