私は、フォームMongoの集約 - フィールドの値の異なるグループのために蓄積
{name: String, score: Int}
のPlayer
書類を持っていると私はグループが選手
{groupName: String, players: [ObjectID]}
選手のリストを表すGroup
文書を持っている場合複数のグループに属することができます。
Group
でグループ化されたPlayer
文書の集合を作成したいとします(例えば、各グループのプレイヤーの得点の合計を1つの集約パイプラインで取得します)。 GroupID
によって、その後$group
それらが関連付けられているGroup
文書へのポインタをPlayer
ドキュメントをお返し
=>:
オプションは、私は承知しているの。しかし、私はPlayer
コレクションを変更する必要はありません。 (パイプライン中でGroupID
を文書に追加する方法がありますか?)
=>グループごとに別々の呼び出しを行い、照会されている現在のグループのプレーヤーだけをフィルタリングするために$match
ステージを使用しますために。しかし、私は単一の、簡単な呼び出しを行うことを好む。
どのようにしてこのような集約を達成できますか? MongoDB集約にはこれに対応するものがありますか?
(ところで、コールが行われている場所で、グループとプレイヤーをマップしておけば問題ありませんので、プレイヤーのリストを引数として渡すオプションは実際には公正なゲームです)