0
我有一個Mongoid模型,並且我想要通過在模型和current_user
之間實時計算得分來排序結果。假設Thing
有一個實例方法match_score
:通過動態的,用戶特定的值來訂購Mongoid結果
def match_score(user) #can be user object too
score = 100
score -= 5 if user.min_price && !(price < user.min_price)
score -= 10 if user.max_price && !(price > user.max_price)
#... bunch of other factors...
return [score, 0].max
end
是否有可能通過該值的任何查詢的結果排序,返回一個特定的用戶?
只是一個小小的問題:切換數據存儲不會節省您計算每個Thing/User組合的得分。 – Matt
是的,但與MySQL(例如),可以在查詢中做到這一點,無需預先計算。我不知道是否有可能有效地預先計算這一點。 –