这是我获取用户基于银行的排名的当前方式。
用户架构:
var UserSchema = new Schema({
username: {type: String},
password: {type: String},
salt: { type: String},
bank: {type: Number, min: 1, max: 9, default: 1},
cash: {type: Number, min: 0, default: 0},
});
module.exports = mongoose.model('Users', UserSchema);
// remember that mongoose makes the user id itself
用户查询:
Users.find({}).sort('bank').then(function (users) {
var y = 1;
for (var x = 1; x <= users.length; x++) {
if (userid == users[x-1].userid) {
return x;
}
}
});
表示如果userid在第一个循环结果中,那么他是关于银行的最富有的用户,并将返回1.
所需的输出: 如果用户是最富有的银行,则返回1,如果是2,则返回2. 3等。 又是查询结果的数量。
如果用户之前没有出现例如19,它的#19。
因此,特定用户的顺序是我想要获得的。
我们的想法是在结果行中获取用户所在的数字。
有更简单的方法吗?