我正在為我的用戶創建一個獎勵系統,我想向他們展示他們在其他用戶中的排名。我試圖通過一些內置的 JS 函式來實作這一點,但我做不到。
關卡模式
{
userID: String,
xp: Number,
lastUpdate: Number
}
我正在按“降序” XP對這個集合進行排序:
await schemas.levels.find({}).sort({
xp: -1
})
我如何在這個排序陣列中獲得用戶排名(按用戶 ID)。
uj5u.com熱心網友回復:
您好,如果您想找到檔案的位置(用戶在陣列中的排名)而不管任何順序,目前是不可能的,因為 MongoDb 不按特定順序存盤檔案。但是,可以通過修改從 mongo 回傳的資料來解決此問題。
var docIndex = 0;
db.schemas.find({}, {
"_id": 1
}).sort({
"xp": -1
}).forEach(function(doc) {
docIndex ;
if (userID == doc["userID"]) {
print("User's Rank is..." docIndex);
// Add rank to doc payload here //
return false;
}
});
您還可以在答案部分查看這篇文章獲取檔案位置,它已經失去了回傳檔案位置的方法
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/456616.html
標籤:javascript 数据库 mongodb 循环 猫鼬
上一篇:MongoDB如何使用檔案陣列中的元素數更新計數欄位
下一篇:為什么沒有記錄所有資料?
