получить $ max строки - PullRequest
       3

получить $ max строки

0 голосов
/ 05 августа 2020

Я пытаюсь агрегировать данные на моем mongodb и получить некоторую статистику относительно коллекции, у меня есть поле с именем country, и мне нужно получить тот, который существует больше всего, ниже прилагается текущий код,

считайте, что в моей коллекции 3 документа:

{_id:1, country:"Italy"}
{_id:1, country:"Zimbabwe"}
{_id:1, country:"Italy"}

Ожидаемый результат должен быть: Италия Но на самом деле я получаю Зимбабве, потому что он сравнивает Z> I

visitSchema.statics.calcTotalVisits = async function (link) {
  const stats = await this.aggregate([
    {
      $match: { link },
    },
    {
      $group: {
        _id: '$link',
        sumDocs: { $sum: 1 },
        topReferer: { $max: '$referer' },
        topCountry: { $max: '$country' },
      },
    },
  ]);
  console.log(stats);
};
...