簡體   English   中英

在 Mongo DB 中計算一個字段

[英]Compute a field in Mongo DB

嘿,伙計們,這是我收藏中的一份文件。 { Player_Name: Sandeep Nair Player_TotalWeightedPoints: 80 Player_Rank: 23 }

此類文件有近 200 份。 Player_Rank 字段是總加權點數的 function,按降序排列。 權重最高的玩家排名第一,依此類推。 我有 2 個用例

  1. 當他登錄到 webapp 時,我需要向用戶(玩家)顯示排名。
  2. 每次進行比賽時,我都需要根據比賽得分計算新排名。

如何在 Mongo DB 中計算此 Rank 字段。 ? 有人可以請放一些光。

你的問題不是很清楚,但我確實有一些建議給你。

對於案例 1:

如果您為每個玩家分配一些 id 以獲得與他相關的其他相關詳細信息,那會更好。

現在,假設玩家 A 使用 uid:123 登錄,您可以使用

var data  = db.player.find({}, {uid:123});
var rank = data.Player_Rank;

玩家的排名將存儲在排名變量中,可以在頁面的任何地方使用。

對於案例 2:

插入點的輸入后,根據點對列表進行排序。

db.player.find().sort({Player_TotalWeightedPoints : -1})

現在我們已經對列表進行了排序,現在我們可以使用從 1 到 200 的范圍來分配玩家排名

db.players.aggregate([{
    $project: {
        "Player_Rank": { $range: [ 1, 200] }
    }
}])

這是最好的,我可以通過查看您的問題來提供建議。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM