Как найти текст в mongodb, такой как LIKE в mySQL?

Я нахожу текст в mongodb таким же, как в MySQL, но результат не такой, как ожидалось

У меня есть 6 документов в коллекции сообщений:

(1) Дети Дэвида Бекхэма подбадривают его во время благотворительного футбольного матча

(2) Дэвид Бекхэм в свитере и джинсах небрежно посещает Кубок Кубка.

(3) Дэвид Бекхэм высказался перед своими 55,6 миллионами подписчиков в Instagram, сказав:

(4) Семья Дэвида Бекхэма была в силе, чтобы поддержать его на

(5) Красивый: Дэвид Бекхэм выглядел щеголевато в рубашке и оливково-зеленой куртке перед очередным днем ​​съемок для своей коллекции очков в Венеции.

(6) Но в среду Дэвид Бекхэм был замечен возвращающимся к своим корням, когда он догнал аса Тоттенхэма Гарри Кейна на футбольном поле.

SQL-подобный запрос:

SELECT * FROM posts WHERE content LIKE '%David%Tottenham%'

=> (6) Но в среду Дэвид Бекхэм был замечен возвращающимся к своим корням, когда он догнал аса Тоттенхэма Гарри Кейна на футбольном поле.

Поисковый запрос Монго:

db.posts.find({"content": /.*Дэвид.Тоттенхэм./})

Как найти текст в mongodb, такой как LIKE в mySQL?

=> ошибка

Я ожидаю, что вывод запроса поиска Mongo будет (6), но фактический вывод - ошибка

Может ли кто-нибудь помочь мне найти запрос в mongodb? Спасибо!

Какая ошибка? Почему у вас есть место после «Тоттенхэма»? Почему у тебя два ** в конце?

Ian Mercer 28.05.2019 16:51

Извините, я только что отредактировал вопрос и прикрепил изображение. Какая ошибка, я не выполняю запрос с монго. Так что я не знаю, что это такое.

followconscience 28.05.2019 16:56

Используйте форматирование кода для текста кода, а не изображения.

JohnnyHK 28.05.2019 17:00
Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
0
3
45
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

вы можете использовать mongodb $regex оператор. Я думаю, что этот запрос может работать для вас:

db.posts.find({"content": {$regex: ".*David.*Tottenham .*"}})

Очень хорошо! Но это отличает "Давид" от "Давид". Я хочу, чтобы результат с "Дэвидом" и "Дэвидом" был одинаковым. Вы можете помочь мне? Спасибо!

followconscience 28.05.2019 17:06

вы можете использовать i в конце, чтобы не учитывать регистр, {"content": {$regex: /.*David.*Tottenham .*/i}}

Mohammadreza Mirhajianmoghadam 28.05.2019 17:22

Другие вопросы по теме