私は、MongoDBで互いに競合するgames
場所teams
の概念をモデル化しようとしています。players
私は2つのコレクションを持っています: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に対しても結果を返しません。