Skip to main content

Що робить стадія $sort?

Стадія $sort сортує потік документів усередині aggregation pipeline - за одним чи кількома полями, у порядку зростання (1) чи спадання (-1). За змістом це аналог ORDER BY в SQL.

Як працює

  • отримує документи з попередньої стадії
  • сортує їх у пам'яті чи з використанням тимчасового сховища
  • передає вже відсортований потік далі по конвеєру

Приклад

js
{ $sort: { createdAt: -1, price: 1 } }

Спершу сортування за createdAt за спаданням, а якщо значення збігаються - за price за зростанням.

Важливий нюанс

Найефективніше $sort працює після $match - коли даних уже менше. Якщо поля для сортування проіндексовані (у звичайному find), це пришвидшує сортування, але в pipeline сортування частіше відбувається в оперативній пам'яті.

Підсумок

$sort - стадія, яка керує порядком документів, щоб наступні етапи (чи фінальний результат) отримували дані в потрібній послідовності.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.