Regular Expression (Regex)
Última atualização: 2026-10-09
Regular Expression (Regex)
Regular Expression é um tipo BSON para correspondência de padrões em consultas, equivalente a `{ field: /pattern/ }`. Ele suporta sintaxe PCRE e flags (i ignora maiúsculas, m multilinha, s dotall, x estendido). Esteja ciente de que padrões sem âncora não podem usar índices e forçam uma varredura de coleção — use com cuidado em coleções grandes.
| Categoria | Tipos BSON |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ field: /^prefix/ }
{ field: /pattern/i }
new RegExp("pattern", "i")
Retorno:O próprio valor de regex; as consultas retornam documentos correspondentes
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// Regular Expression: consultas por padrão
use shop
db.users.find({ name: /^alice/i })
db.products.find({ sku: { $regex: 'AB-\\d{4}' } })
Saída:
// Usuários cujo nome começa com alice (sem distinção de maiúsculas) e produtos com sku como AB-1234
📌 Notas
- Apenas padrões ancorados (/^.../) podem usar índices
- Literais /pattern/ e strings $regex são equivalentes
- Barras invertidas em strings devem ser duplicadas (\\d)
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QConsultas regex podem usar um índice?
AApenas padrões ancorados como /^abc/ podem usar um índice; outros varrem a coleção.
Q$regex é o mesmo que /pattern/?
ASim — ambos constroem uma consulta regex; $regex apenas recebe uma string.
QConsultas regex são lentas — o que posso fazer?
AMude para correspondência de prefixo ancorada com índice, ou use um índice text para busca de texto completo.