$regex (Correspondência Regex)
Última atualização: 2026-10-09
$regex (Correspondência Regex)
$regex corresponde a campos de string com uma expressão regular. `{ name: { $regex: '^A' } }` corresponde a nomes que começam com A. Opções: i insensível a maiúsculas/minúsculas, m multilinha, x ignora espaços em branco. Sem um índice, uma consulta $regex varre a coleção inteira; apenas prefixos ancorados (^) com sensibilidade a maiúsculas podem aproveitar um índice normal.
| Categoria | Elemento e Avaliação |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ <campo>: { $regex: <padrão>, $options: '<opções>' } }
⚙️ Parâmetros
| campo | O campo do documento a corresponder. |
|---|---|
| regex | Um padrão de expressão regular no estilo PCRE. |
| opções | Opcional: i sem distinção de maiúsculas, m multilinha, x ignorar espaços, etc. |
Retorno:Cursor dos documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $regex: nomes que começam com A (sensível a maiúsculas)
db.users.find({ name: { $regex: '^A' } })
// Insensível a maiúsculas: título contendo mongodb
db.articles.find({ title: { $regex: 'mongodb', $options: 'i' } })
Saída:
// Retorna nomes que começam com A; e títulos que contêm mongodb em qualquer lugar (insensível a maiúsculas)
📌 Notas
- Apenas prefixos ancorados (^) com sensibilidade a maiúsculas podem usar um índice normal
- Escape caracteres especiais, ex.: \. corresponde a um ponto literal
- Mantenha $options separado: { $regex: '...', $options: 'i' }
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo torno $regex insensível a maiúsculas?
AAdicione $options: 'i', ex.: { name: { $regex: 'alice', $options: 'i' } }.
Q$regex pode usar um índice?
AApenas padrões ancorados e sensíveis a maiúsculas (ex.: ^A) usam um índice normal; caso contrário, é uma varredura de coleção.
QDevo usar $regex ou $text para busca em texto completo?
APara textos grandes use $text (indexado, com stemização); $regex é adequado para dados pequenos ou padrões exatos.