Mysql INSTR, как операция в mongodb - PullRequest
1 голос
/ 05 января 2012

Совершенно новый для монго здесь.

У меня есть следующие поля в одной из моих таблиц mysql:

id (BIGINT), text (LONGTEXT) #this would contain a long description

Я надеюсь изменить свой проект с Mysql на MongoDB, но, прежде чем я это сделаю, есть очень важный запрос, который необходимо решить.

Мой текущий запрос ищет различные термины в описании и возвращает все идентификаторы, например,

select id from <table> where instr(<table>.text, 'value') or instr(<table>.text, 'value2)

Возможно ли воссоздать это в Монго? если так как? сейчас, используя $ или $ in, кажется, что мне нужно, чтобы эти конкретные значения были в каком-то массиве в моем документе.

1 Ответ

0 голосов
/ 05 января 2012

MongoDB в настоящее время не поддерживает полнотекстовый поиск.

Вы можете использовать регулярные выражения, но это будет медленным (из-за неиспользования индексов, если они не имеют корня).будет выглядеть так:

db.collection.find({ $or: [{description: /value1/}, {description: /value2/}] })

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

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