在我的數據庫中,我有一個書籍集合。 每個有:貓鼬:分數查詢,然後按分數排序 - 非文本字段
- upvotes的計數
- downvotes的計數
- 的意見
我想用進球給我的分貝排序如下計數:
- upvote:8分
- downvote:-4分
- 觀點:1/2點
這樣的比分將是:
(NumberOfViews*(1/2)) + (NumberOfDownvotes*-4)+ (NumberOfUpvotes*8)
所以,如果我有:
book1 = {name:'book1', views:3000,upvotes:340, downvotes:120}
book2 = {name:'book2', views:9000,upvotes:210, downvotes:620}
book3 = {name:'book3', views:7000,upvotes:6010, downvotes:2}
比分應該是:
book1Score = 3740
book2Score = 3700
book3Score = 51572
而查詢應輸出
book3,book1,book2
我怎樣才能在貓鼬中實現這樣的事情?
紅利:如果我想要在同一查詢中更新的記錄排名高於舊記錄,該怎麼辦?
感謝
謝謝!這似乎正是我所追求的!你能解釋一下這個功能是如何工作的嗎?什麼是a和b? –
等待,這意味着我必須將整個查詢結果存儲在我的服務器的RAM中?這是行不通的...... –
第一個答案是排序數組的高階函數:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort。如果你想要貓鼬分類,我編輯了答案 –