#mongodb #mongodb-query
#mongodb #mongodb-запрос
Вопрос:
У меня есть запрос агрегации, который я хотел бы отсортировать по 2 уровням.
У меня есть коллекция пользователей, в которой есть следующие поля, относящиеся к сортировке: premium (boolan) last_online (дата)
Я хотел бы отсортировать их сначала по premium, затем по last_online.
Я представляю это как первую сортировку, разбивающую результат на 2 группы: премиум и не премиум. Затем каждая группа сортируется внутри себя по last_online .
Поэтому результатом должно быть — премиум, отсортированное по last_online, за которым следует не премиум, отсортированное по last_online.
Я пытался { $sort: { premium: -1, last_online: -1 } }
, но на самом деле это не дает мне результата, который я ищу.
Как я могу этого добиться?
Ответ №1:
Вы могли бы рассмотреть возможность добавления индекса для получения согласованного результата сортировки.
db.collection.createIndex({premium : -1, last_online : -1})