MongoDB: Как найти идентификатор под-документа?

Я пытаюсь смоделировать концепциюgames гдеteams изplayers конкурировать друг с другом в MongoDB.

У меня есть две коллекции:players а также .games

Вот как документ вgames похоже.

{
    "_id": { "$oid": "1" },
    "teams": [
        {
            "players": [
                {
                    "player": { "$oid": "2" },
                    "score": 500,
                },
                {
                    "player": { "$oid": "3" },
                    "score": 550,
                }
            ]
        },
        {
            "players": [
                {
                    "player": { "$oid": "4" },
                    "score": 500,
                },
                {
                    "player": { "$oid": "5" },
                    "score": 550,
                }
            ]
        }
    ]
}

Вот'Задача: по ID игрока я хочу найти все игры, в которых участвовал этот игрок.

Что я'мы пробовали:

db.games.find( { "teams.players.player._id": "2" } )

Однако это ничего не возвращает.

Кстати, яиспользуя Mongoose со следующей схемой:

playerSchema = Schema
    player: { type: Schema.ObjectId, ref: 'Player' }
    score: { type: Number }

teamSchema = Schema
    players: [ playerSchema ]

gameSchema = Schema
    teams: [ teamSchema ]

с помощью следующего запроса CoffeeScript:

Game.find 'teams.players.player._id': playerId

который не возвращает результатов для любого идентификатора игрока.

Ответы на вопрос(2)

Ваш ответ на вопрос