$text (Busca em Texto Completo)
Última atualização: 2026-10-09
$text (Busca em Texto Completo)
$text executa busca em texto completo nos campos cobertos por um índice de texto. `{ $text: { $search: 'coffee shop' } }`. Crie primeiro um índice de texto (db.collection.createIndex({ content: 'text' })); uma coleção pode ter no máximo um. Ele aplica stemização e remoção de stopwords, suporta busca por frase com aspas duplas e fornece uma pontuação de relevância via $meta: 'textScore'.
| Categoria | Elemento e Avaliação |
|---|---|
| Versão do MongoDB | 2.6+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $text: { $search: <string>, $language: <idioma>, $caseSensitive: <booleano> } }
⚙️ Parâmetros
| search | As palavras-chave ou frase a pesquisar. |
|---|---|
| language | Opcional; o idioma para stemming. |
| caseSensitive | Opcional; se a pesquisa diferencia maiúsculas de minúsculas. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $text: busca em texto completo por coffee shop
// Exige um índice de texto primeiro
db.articles.find({ $text: { $search: 'coffee shop' } })
// Ordena por relevância (textScore)
db.articles.find(
{ $text: { $search: 'coffee' } },
{ score: { $meta: 'textScore' } }
).sort({ score: { $meta: 'textScore' } })
Saída:
// Retorna artigos que correspondem aos radicais coffee/shop; a segunda consulta ordena por relevância
📌 Notas
- Crie um índice de texto primeiro; no máximo um por coleção
- Stemização: buscar coffee também corresponde a coffees
- Diferente de $regex, $text usa o índice de texto e é adequado para textos grandes
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que devo fazer antes de usar $text?
ACrie um índice de texto primeiro: db.coll.createIndex({ content: 'text' }).
QQual é a diferença entre $text e $regex?
A$text é busca indexada no nível de palavra com stemização e pontuação; $regex é correspondência de padrões, geralmente uma varredura completa.
QComo ordeno resultados de $text por relevância?
AProjete a pontuação com $meta: 'textScore' e então use sort({ score: { $meta: 'textScore' } }).