У меня есть список игр. Каждый из них имеет встроенный список баллов. Я хотел бы сохранить ссылку на лучший результат за пределами списка баллов.Монгоид: могу ли я внедрить многие и ссылаться на один из встроенных?
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
, но получил сообщение об ошибке: «ссылающегося на Score документ из документа игры с помощью реляционной ассоциации не допускается, так как история цен встраивается.» Я полагаю, что я могу хранить соответствующие биты показателя в хеше, называемом «best_score», но мне больше смысла вкладывать множество баллов, а затем ссылаться на один из них как «Лучший». Это возможно?
Я действительно не хочу загружать оценки, пока они мне не нужны, это довольно большой массив (массив реальных объектов намного больше, чем образец, который я положил в свой пост). – jcollum
Если в большинстве случаев вам нужен только один лучший результат, я думаю, вы должны написать карту-уменьшить этот запрос только с одним лучшим счетом вместе с нужным полем. Или вы можете использовать ссылки вместо использования встроенных, чтобы загрузить оценки позже, когда вам действительно нужно. –
>, которые запрашивают только один лучший результат - справа, но тогда я предполагаю, что мне нужно будет хранить его как хэш ... Просто кажется странным, что я не могу сделать ref и вставить в тот же объект. – jcollum