Я нахожу текст в 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": /.*Дэвид.Тоттенхэм./})
=> ошибка
Я ожидаю, что вывод запроса поиска Mongo будет (6), но фактический вывод - ошибка
Может ли кто-нибудь помочь мне найти запрос в mongodb? Спасибо!
Извините, я только что отредактировал вопрос и прикрепил изображение. Какая ошибка, я не выполняю запрос с монго. Так что я не знаю, что это такое.
Используйте форматирование кода для текста кода, а не изображения.
вы можете использовать mongodb $regex оператор. Я думаю, что этот запрос может работать для вас:
db.posts.find({"content": {$regex: ".*David.*Tottenham .*"}})
Очень хорошо! Но это отличает "Давид" от "Давид". Я хочу, чтобы результат с "Дэвидом" и "Дэвидом" был одинаковым. Вы можете помочь мне? Спасибо!
вы можете использовать i
в конце, чтобы не учитывать регистр, {"content": {$regex: /.*David.*Tottenham .*/i}}
Какая ошибка? Почему у вас есть место после «Тоттенхэма»? Почему у тебя два ** в конце?