Как найти слово или строку во всех полях документа с помощью MongoDB?
У нас есть ситуация, когда пользователь хотел бы иметь единый "омни-бокс" для поиска слова \ фразы в любом месте документа.
Может ли MongoDB выполнить этот поиск, или это должен быть явный поиск по каждому полю?
1 ответ
Вам необходимо создать текстовые индексы с подстановочными символами, например так:
db.collection.createIndex( { "$**": "text" } )
Вы можете использовать$text
Оператор выполняет текстовый поиск.
Как указано в документации:
Этот индекс позволяет осуществлять текстовый поиск по всем полям со строковым содержимым. Такой индекс может быть полезен для сильно неструктурированных данных, если неясно, какие поля включить в текстовый индекс или для специальных запросов.