А имеет много сквозных, на самом деле это просто пара много-к-одному, чтобы создать множество ко многим, с дополнительным бонусом, который позволяет хранить данные отношений в дополнение к внешним ключам (например, статистику вашей команды). Так что вы можете легко сделать это в Mongoid, используя что-то вроде:
Event
has many :team_stats
Team
has many :team_stats
TeamStat
belongs_to :events
belongs_to :team
field :score, :type => Integer
Хотя в этом нет ничего иерархического. Если вам нужно уметь запрашивать оба (дать мне статистику для всей команды по событию A, а также статистику по всем событиям для команды № 1), то это прежде всего реляционная схема. Знаешь что я имею ввиду? Так что, если у вас в приложении нет много других иерархических данных / данных на основе документов, я бы, вероятно, выбрал СУБД.
Однако, если вам когда-либо нужно было запрашивать статистику по событию, вы можете сделать этот документ более дружественным, внедрив статистику команды в каждое событие, а не связывая События и Команду через другую коллекцию.
По той же логике, если вам когда-либо нужно было запрашивать статистику команды, вы можете встраивать статистику событий в каждую команду.