Агрегация с mongodb - PullRequest
       5

Агрегация с mongodb

0 голосов
/ 09 января 2019

Мы сохраняем статистику игрока для каждого матча в MongoDb.

{idPlayer: 27, idTeam: 6, matchId: 1, score: 90},
{idPlayer:38, idTeam: 9, matchId:1, score: 6}, 
{idPlayer:5, idTeam:8, matchId:2, score: 20}

Мы хотим знать, сколько матчей сыграла команда: Мы хотим, чтобы результат как:

{idTeam, sumMatches}

{idTeam: 8, sumMatches: 6}
{idTeam: 9, sumMatches: 4}

Мы пытаемся с агрегацией, но мы не получаем этот результат.

Есть идеи, как решить эту проблему?

1 Ответ

0 голосов
/ 09 января 2019

Это должно сделать это:

db.collection.aggregate([
  {
    $group: {
      _id: "$idTeam",
      matches: {
        $addToSet: "$matchId"
      }
    }
  },
  {
    $project: {
      _id: 0,
      idTeam: "$_id",
      sumMatches: {
        $size: "$matches"
      }
    }
  }
])
...