Как при запросе к Mongo отфильтров. записи, а потом снова отфильтров. по др. парам.
На бэке юзается Node, Mongoose и Mongo. Подскажите как мне составить запрос таким образом, чтобы записи искались по БД сперва по одному параметру, а потом то что нашлось снова было отфильтровано по другому параметру?
Сейчас код выглядит так: posts = await Post.find({ $or:[ {title: new RegExp(search, 'ig')}, {text: new RegExp(search, 'ig')}, {category: new RegExp(category, 'ig')} ] }) А мне нужно, чтобы записи нашлись по тому что прилетает в search, а потом были отфильтрованы по тому что прилетело в category. Заранее спасибо |
Получаешь из posts массив (await posts.toAtrray(), кажется. Сам посмотри доки). А потом фильтруешь его обычным .filter
|
Цитата:
Mongoose не используем... Используем mongojs, но сути это наверняка не меняет. db.test.find(query).sort({key1: 1, key2: -1}) |
Цитата:
|
Цитата:
|
Цитата:
Теперь про фильтрацию - ее же можно сразу сделать как нужно, с учетом обоих значений. Пока не понятно зачем брать больше, а потом это все еще раз фильтровать? |
Цитата:
Алогорим такой: - нашли статьи по категории - в эти найденных статьях нашли статьи, в которых содержится искомое слово Если это будет 1 запрос -- это то, что мне нужно |
Цитата:
{ category: new RegExp(category, 'ig'), $or:[ {title: new RegExp(search, 'ig')}, {text: new RegExp(search, 'ig')}, ] } Т.е. ты расскажи чего хочешь искать в итоге? |
Цитата:
Хочу в БД найти статьи, который содержат указанную категорию и истомый текст. В постмане это выглядит так: https://ibb.co/qmxrh7H |
Цитата:
Если как сначала был вопрос Цитата:
А если Цитата:
Каков вопрос, таков ответ. |
Часовой пояс GMT +3, время: 06:00. |