Как получить все результаты, содержащие определенную строку (подробнее описано в посте)

#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/ .