Группировка по первому значению и упорядочение по убыванию в MongoDB - PullRequest
0 голосов
/ 04 мая 2020

Не могли бы вы подтвердить правильный запрос, чтобы отобразить таблицу счетов по имени учетной записи и первому значению подписчиков каждой учетной записи, упорядоченные по убыванию по количеству подписчиков?

Коллекция MongoDB называется "твиты".

Каждый документ в коллекции представляет собой твит.

Пожалуйста, найдите один из документов (твитов) в JSON формате здесь :

Я попытался выполнить следующий запрос:

    db.tweets.aggregate(
       [
           {
        $sort: {
          name: -1
        }
      },
      {
        $sort: {
          followers_count: 1
        }
      },

         {
           $group:
             {
               _id: "$user.name",
               followers: { $first: "$user.followers_count" }
               }
         }
       ]
    )

Однако он не упорядочивает учетные записи по убыванию в зависимости от количества подписчиков каждой учетной записи:

/* 1 */
{
    "_id" : "Salud_Ec",
    "followers" : 423528
}

/* 2 */
{
    "_id" : "EUPHA",
    "followers" : 4981
}

/* 3 */
{
    "_id" : "MSF International",
    "followers" : 145265
}

/* 4 */
{
    "_id" : "Ministerio de Sanidad",
    "followers" : 501492
}

/* 5 */
{
    "_id" : "NHS",
    "followers" : 479038
}

/* 6 */
{
    "_id" : "World Health Organization (WHO)",
    "followers" : 7668030
}

/* 7 */
{
    "_id" : "HHS.gov",
    "followers" : 945901
}

Требуется вывод вверху есть учетная запись ВОЗ, а внизу - учетная запись EUPHA.

Спасибо.

1 Ответ

1 голос
/ 04 мая 2020

Вышеупомянутый запрос является почти правильным, просто настройте этап сортировки после группировки!

 db.tweets.aggregate(
       [
           {
        $sort: {
          name: -1
        }
      },
      {
           $group:
             {
               _id: "$user.name",
               followers: { $first: "$user.followers_count" }
               }
         }, 
      {
        $sort: {
          followers: -1
        }
      },


       ]
    )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...