汇总 MongoDB

Aggregate MongoDB

我有一个文件集,像这样:

{
 _id: ObjectId('xyz'),
 companyId: 'xyz',
 lastModifiedByUserEmail: 'name@domain.com'
}

我需要通过 companyId 了解出现次数较多的 lastModifiedByUserEmail,出现次数。

我知道如何计算 lastModifiedByUserEmail 的出现次数:

{ $group: { _id: '$lastModifiedByUserEmail', total: { $sum: 1 } } }

但是我不知道怎么按companyId分组。

您可以将 multi-part id 添加到群组中:

{
  $group: {
    _id: {
      "lastModifiedByUserEmail": "$lastModifiedByUserEmail",
      "company": "$companyId"
    },
    total: {
      $sum: 1
    }
  }
}

如果你想得到最高的,那就加上排序和限制?

  {
    $sort: {
      total: -1
    }
  },
  {
    $limit: 1
  }

https://mongoplayground.net/p/vzfv8eUYHaz