Що робить стадія $sort?
Стадія $sort сортує потік документів усередині aggregation pipeline - за одним чи кількома полями, у порядку зростання (1) чи спадання (-1). За змістом це аналог ORDER BY в SQL.
Як працює
- отримує документи з попередньої стадії
- сортує їх у пам'яті чи з використанням тимчасового сховища
- передає вже відсортований потік далі по конвеєру
Приклад
js
{ $sort: { createdAt: -1, price: 1 } }Спершу сортування за createdAt за спаданням, а якщо значення збігаються - за price за зростанням.
Важливий нюанс
Найефективніше $sort працює після $match - коли даних уже менше. Якщо поля для сортування проіндексовані (у звичайному find), це пришвидшує сортування, але в pipeline сортування частіше відбувається в оперативній пам'яті.
Підсумок
$sort - стадія, яка керує порядком документів, щоб наступні етапи (чи фінальний результат) отримували дані в потрібній послідовності.
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.