#node.js #mongodb
Вопрос:
Итак, допустим, я поставил «h» в почтовой форме, и в моей базе данных есть 5 вещей:
1 — я запись-Имя: Здравствуйте
2 — я Запись- Имя: Высота
в 3-й, 4-й, 5-й записях нет слова с буквой «н» в них
Как бы я заставил его вернуть все те, которые включают предоставленную строку (например, «Привет» и «Высота»)
Вот моя текущая настройка:
app.post('/search/full', async (req, res) =>{
const URLs = await shortURL.find({
"short": {
"$regex": req.body.fullURLSearch,
"$options": "i"
}
})
res.render('searchFull', {
fullURLsearch: URLs
})
})
Ответ №1:
Если вы хотите запрос без учета регистра, вы можете сделать это (если вы хотите запрос с учетом регистра, просто удалите "$options": "i"
).:
db.collection.find({
"field": {
"$regex": "YourQueryString",
"$options": "i"
}
})
Вот рабочий фрагмент: https://mongoplayground.net/p/F6oSaf8P7lb
Комментарии:
1. Я добавил рабочий фрагмент к ответу, чтобы вы могли его проверить.
2. Так же, как и выше, не работает, но я воспользуюсь этим, если исправлю это 🙂
3. Можете ли вы дать мне свой тестовый запрос? Что вы проверяете? Строка URL-адреса?
4. Хорошо, да, конечно, позвольте мне поместить его в Pastebin для более чистого макета.
5. Добавьте это к вашему вопросу.
Ответ №2:
Вы на самом деле не даете много для продолжения, но, основываясь на вашем вопросе, я могу предположить, что что-то подобное может сработать:
db.collection.find({field:/H/}})
естественно H
, замените переменную на переменную по мере необходимости
Комментарии:
1. Хорошо, я сделал это:
const URLs = await shortURL.find({ full: /req.body.fullURLSearch/ })
но это не работает, когда я ввожу https://, и не работает, когда я ввожу T для поиска короткого URL, но работает, когда я это делаю/t/
.