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
который не возвращает результатов для любого идентификатора игрока.