我试图在 MongoDB 中对彼此竞争的概念games
进行teams
建模players
。
我有两个系列: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
它不会返回任何玩家 ID 的结果。