我有一个游戏列表。每个人都有一个嵌入的分数列表。我想继续提及分数列表之外的最佳分数。
class Game
include Mongoid::Document
field :best_score_id, type: Moped::BSON::ObjectId
...
embeds_many :scores
class Score
include Mongoid::Document
field :user, type: String
field :score, type: Int
我尝试了belongs_to
和has_one
,但收到了错误消息:“由于价格历史已嵌入,因此不允许通过关系关联从游戏文档中引用分数文档。”我想我可以将得分的相关位存储在名为“best_score”的哈希中,但是对我来说更有意义的是嵌入许多分数然后将其中一个引用为“最佳”。这可能吗?
答案 0 :(得分:0)
你可以这样做 -
编写一种方法来选择游戏模型类中的最佳分数 -
def best_score
score = scores.order_by(:score, :desc).limit(1)
if score.nil?
nil
else
score.first
end
end
由于分数嵌入游戏中,因此数据库也不会有任何+1查询。