Я практикую свои навыки реагирования и умения go, создавая MERN-приложение, похожее на Reddit.
Я использую мон goose.
Я успешно закончил Передача одного параметра и поиск по нему.
Я хотел бы создать маршрут, который позволит пользователю получать результаты по крайней мере по одному предпочтению, но разрешать множественный выбор
Пример: Получить результаты для "Технологии", "Кулинария", "Игры".
Моя схема MongoDB содержит раздел категорий для каждого сообщения, по крайней мере с одним, иногда с несколькими.
{
"_id" : ObjectId("5e9e31a445e1672d28080138"),",
"username" : "StaySixFeetAwayPlease",
"postTitle" : "Washer is leaking out the back.",
"postBody" : "Hey, so last week I was doing laundry when I heard a big thud from the laundry room. Going in to investigate I couldn't figure out what caused the sound but now when I do laundry the washer leaks water. It's one of those portcullis washers with the little window in the front. Attaching a picture. Any advice?",
"categories" : [
"Appliance",
"Home"
],
"date" : ISODate("2020-04-20T23:35:00.072Z")
}
Как я могу условно передать хотя бы один ИЛИ несколько параметров?
И как я могу получить результаты обратно, если хотя бы один из параметров совпадает в массиве категорий?
Что у меня есть.
Маршрут
router.route("/cat/:category")
.get(apiController.getPostByCategories)
postsController
getPostByCategories: function (req, res) {
console.log(req.params)
db.NewPost.find({ categories: req.params.category || /req.params/i})
.then(postCategory => {
console.log(postCategory)
})
.catch(err => {
res.status(422).json(err)
})
}
Редактировать: Предложенное было полезно для понимания того, как использовать регулярное выражение "in" для mon goose ( невозможно использовать регулярное выражение в операторе $ in в mongodb ), но все еще не уверен как условно передать один или несколько параметров для поиска по.