Как сортировать выборку MongoDB по количеству удовлетворённых условий в $or?
Реализовываю в приложении что-то вроде поиска по фильтрам.
Чтобы выбрать все документы, удовлетворяющие хотя бы одному фильтру, решил использовать оператор $or и перечислить в нём все фильтры-условия. Но как теперь мне отсортировать документы по количеству удовлетворённых условий, чтобы сначала были те, которые удовлетворили все условия, а в самом конце те, что удовлетворили одно?
lega: можно подробнее? Если я проиндексирую каждое поле вот так: `db.reviews.createIndex( { comments: "text" } )` то моя выборка $or сама отсортируется по количеству удовлетворённых условий? Как это работает? Я прочёл описания текстового индекса MongoDB, но там ничего такого не было, он нужен для поиска по тексту.
Если вы обратите внимание на большие магазины - там вместо диапазонов сделаны категории, например размер экрана в дюймах - категории, объем памяти - категории, даже цена иногда категориями "20к-30к руб, 30к-40к руб...", т.е. "диапазоны" превращаются в теги, это как раз сделано для оптимизации.
Но вы все равно можете прикрутить условие, например цену можно вынести в отдельное после: https://docs.mongodb.org/manual/reference/operator...