Я пытался написать динамический c запрос в пн goose, но не смог найти способ достичь своей цели.
Я хочу запрограммировать видео платформу, которая включает в себя расширенное видео функция поиска. Вот фрагмент моего кода:
router.get("/search/video", async (req, res) => {
let category = JSON.parse(req.query.category); // Array
let searchOrder = req.query.searchOrder; // String
let searchText = req.query.searchText; // String
let channel = req.query.channel; // String
//query, if all parameters are provided
Video.find({
$text: { $search: searchText, $language: "en" },
category: { $elemMatch: { categoryID: { $in: category } } },
channelID: channel,
}).sort({ date_added: searchOrder });
});
Однако, если пользователь не хочет искать определенную категорию c или не указывает канал, ноль передается, и подходящее видео не может быть нашел. Я пытался использовать строку, но она не работает с model.findOne (). Как я могу запрограммировать динамический c запрос, который работает в зависимости от заданных параметров?
Заранее спасибо!