Q: How to store football teams, games and scores in MongoDB I'm design football statistic application. I stuck with storing game (match) result. 
I have Team object and Game object. First I make Game model look like
class Game
  include Mongoid::Document

  belongs_to :team_1, class_name: "Team"
  belongs_to :team_2, class_name: "Team"  

  field :score_1, type: Integer
  field :score_2, type: Integer

But it not allows my to find all team games. 
Next i decide to do something like this:
class Game
  include Mongoid::Document

  has_and_belongs_to_many :teams
  field :scores, type: Array

But looks like teams order not matches scores and looks ugly. 
Next I created model Score for storing team and it score, and Game model had many Scores, but this is more ugly than previous one.

A: I don't know exactly what kind of model you're trying to achieve, but in my opinion, your model should reflect the reality of the game's nature you're modelling.
So, considering that approach, your class design should look like this:
class Game
  class InvalidScorerError < Exception ; end
  include Mongoid::Document
  belongs_to :home_team, class_name: "Team"
  belongs_to :away_team, class_name: "Team"
  embeds_many :goals

  field :home_team_goals, type: Integer, default: 0
  field :away_team_goals, type: Integer, default: 0

  def register_a_goal(team)
    if team == home_team
        self.home_team_goals += 1
        self.save!
    elsif team == away_team
        self.away_team_goals += 1
        self.save!
    else
        raise InvalidScorerError, "Team should be either home or away!"
    end
  end

  def total_match_goals
    self.home_team_goals + self.away_team_goals
  end
end

class Team
  include Mongoid::Document
  has_many :inhouse_games, class_name: "Game", inverse_of: :home_team
  has_many :games_as_a_visitor, class_name: "Game", inverse_of: :away_team
end

EDIT: There are another things to consider, like the championship, the schedule... Just try to imagine how things happen in the real life. Your code is just an abstraction of the reality.
Hope it helps!

A: I think the natural thing is to think that a game has 2 teams (or more, idk what kind of game is this), and has one score (that does not exist without a game). Still, you need to know which score is related with which team, so you have a relationship between them, therefore, your design would look like this:
class Game
  include Mongoid::Document
  has_many :teams #I don't get why you would need HABTM
  embeds_one :score
end

class Team
  include Mongoid::Document
  belongs_to :game
  has_many :scores
end

class Score
  include Mongoid::Document
  embedded_in :game
  belongs_to :team
  field :score, type: Integer
end

