Как найти слово или строку во всех полях документа с помощью MongoDB?

У нас есть ситуация, когда пользователь хотел бы иметь единый "омни-бокс" для поиска слова \ фразы в любом месте документа.

Может ли MongoDB выполнить этот поиск, или это должен быть явный поиск по каждому полю?

1 ответ

Вам необходимо создать текстовые индексы с подстановочными символами, например так:

db.collection.createIndex( { "$**": "text" } )

Вы можете использовать$text Оператор выполняет текстовый поиск.

Как указано в документации:

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

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