MongoDB (Пн goose) Поисковый запрос с включением текста? - PullRequest
0 голосов
/ 18 июня 2020

Если данные

[ 
   { title: "banana awesome" },
   { title: "banana is good" },
   { title: "banana is good hahaha" },
   { title: "banana is delicious" },
]

И я хочу запросить «банан хорошо»

Результат должен быть:

 [
   { title: "banana is good" },
   { title: "banana is good hahaha" }
 ]

То, что я пробовал

const searchText = "banana good"

Fruits.find({ title: { $regex: `.*${searchText}.*`} }
Fruits.find({ title: { $regex: searchText }}

Оба не работают. Как мне это сделать?

Ответы [ 2 ]

0 голосов
/ 18 июня 2020

Я считаю, что ваше регулярное выражение неверно. Я тоже не эксперт по регулярным выражениям. Но это должно сработать.

Fruits.find({ title: /banana.+good/i });

Вы должны построить строку регулярного выражения, такую ​​как /banana.+good/i this, из вашей заданной строки.

Вы ищете именно подстроку banana good. Но такой подстроки в базе данных нет.

0 голосов
/ 18 июня 2020

Попробуйте, не добавляя регулярное выражение в запрос

const searchText = "banana good"

Fruits.find({ title: /.*${searchText}.*/ }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...