games
という概念をモデル化しようとしていますが、ここでteams
のplayers
がMongoDBで競合しています。MongoDB:サブ文書IDで検索するには?
私は2つのコレクション:players
とgames
を持っています。
これはgames
の文書の仕組みです。私はこの選手が参加したすべてのゲームを見つけたいプレイヤーのIDを指定:
{
"_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,
}
]
}
]
}
ここでタスクがあります。
私が試した:
db.games.find({ "teams.players.player._id": "2" })
はしかし、これは何も返しません。次のCoffeeScriptのクエリで
playerSchema = Schema
player: { type: Schema.ObjectId, ref: 'Player' }
score: { type: Number }
teamSchema = Schema
players: [ playerSchema ]
gameSchema = Schema
teams: [ teamSchema ]
:ところで
、私は次のスキーマでマングースを使用してい
Game.find 'teams.players.player._id': playerId
任意のプレイヤーIDの結果を返しませんいます。あなたの文書で
あなたがスキーマをより良い方法で設計できると思うなら、私はいくつかの指針も手に入れたいと思います! –
2つのチーム、または2つ以上のチームが必要ですか?私は2つのチームのためのまともな例を与えることができますが、より多くのチームは少し退屈であり、検索のための追加のフィールドが含まれています。 –
それはちょうど2つのチームです。ありがとう! –