получить список коллекций, в которых все слова существуют в поле, которое добавлено в данную строку в mongoDB - PullRequest
0 голосов
/ 20 мая 2019

Я хочу найти в списке коллекций из mongoDB все ключевые слова данной строки.

Например,

I have a collection 
{
  "id":1
  "text":"go for shopping",
  "description":"you can visit this branch as well"
}
{
  "id":2
  "text":"check exiting discount",
  "description":"We have various discount options"
}

Теперь, если я передам строку как "Iхочу пойти за покупками " относительно текстового поля в поисковом запросе mongoDB.Затем я должен получить первую коллекцию в качестве выходных данных, поскольку во входной строке, переданной в поисковом запросе, есть значение текстового поля «ходить по магазинам».

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Этого можно достичь с помощью оператора $ text в MongoDB. Но вам нужно создатьIndex в поле «текст» в вашей базе данных (или в зависимости от того, какое поле вы хотите сопоставить, я бы посоветовал вам переименовать его в вашей базе данных, чтобы избежать путаницы)

db.yourCollectionName.createIndex({"text":"text"})

Первое поле здесь - это текстовое поле в вашей базе данных, а второе - оператор Монго.

Тогда вы можете передать любой запрос, как,

db.yourCollectionName.find({$text: {$search: "I want to go for shopping"}})

Здесь "$ text" - это оператор Монго. Это вернет все документы, которые имеют любое из ключевых слов выше.

Может быть, вы можете прочитать больше об этом, импровизировать и изменить.

Ссылка: MongoDb $ text

0 голосов
/ 20 мая 2019

Вы можете сделать это с помощью регулярного выражения. MongoDb обеспечивает предоставление соответствующих строк через шаблоны регулярных выражений. В вашем случае вы можете сделать что-то вроде:

db.yourCollectionName.find({text:{$regex:"go for shopping" }})

Это вернет вам все документы, имеющие фразу «пойти за покупками» в текстовом поле.

Ссылка: MongoDb Regex

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...