Задать вопрос
kotcich
@kotcich
Я скучный.

Как сортировать полученные документы после агрегации?

Песочница

Если по выполнять запрос несколько раз, то видно, что периодически порядок возвращаемых документов меняется от
[1, 2], [1, 5] к [1, 5], [1, 2]

Сами по себе, возвращаемые документы являются последними сообщениями в паре [1, x], но вот порядок возвращения случайный как я понимаю.

Мне же нужно, чтобы последние сообщение всегда было первым, а потом все остальные. То есть чтобы 1млн запросов, всегда возвращал мне такой порядок: [1, 2], [1, 5]
  • Вопрос задан
  • 54 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
Сoртируйте пoсле $group

db.collection.aggregate([
  {
    "$match": {
      "roommates": {
        "$in": [
          1
        ],
        "$nin": []
      }
    }
  },
  {
    "$sort": {
      "created_at": -1
    },
    
  },
  {
    "$limit": 25
  },
  {
    "$group": {
      "_id": "$roommates",
      "m": {
        "$first": "$$CURRENT"
      },
      
    }
  },
  {
    "$sort": {
      "m.created_at": -1
    },
    
  },
  
])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы